jquery easyui datagrid 数据绑定问题

ProductAction关键代码如下:privateMap<String,Object>result=newHashMap<String,Object>();publi... ProductAction关键代码如下:
private Map<String,Object> result = new HashMap<String,Object>();
public Map<String, Object> getResult() {
return result;
}

public void setResult(Map<String, Object> result) {
this.result = result;
}

public String list(){
List<Product> lstProduct = this.productService.find();
this.getResult().put("lstProduct", lstProduct);
return "json";
}

struts.xml中关键代码如下:
<package name="basedata" namespace="/basedata" extends="json-default">
<action name="product/*" class="productAction" method="{1}">
<result>/WEB-INF/page/basedata/productMain.jsp</result>
<result name="json" type="json">
<param name="ignoreHierarchy">false</param>
</result>
</action>
</package>

请教各位大虾:怎么使用easyui的datagrid来绑定上面action中返回的json数据呀?最好是给出具体的实现代码,谢谢!!
展开
 我来答
暗夜de忧伤
推荐于2016-12-01 · TA获得超过1936个赞
知道小有建树答主
回答量:995
采纳率:75%
帮助的人:968万
展开全部
①首先肯定需要有一个table标签,给它定义一个id,在js中通过id.datagrid方法即可创建表格
<table id="tt"></table>
$('#tt').datagrid(options);

②创建表格的列名有两种方式:第一种是直接在table标签中定义,第二种是在js中定义:
我使用的是第一种方式:
<!-- 表格 -->
<table id="loginInfoTable"
title="用户信息一览"
border="0"
cellspacing="0"
cellpadding="0"
iconCls="icon-edit"
width="98%"
idField="loginId"
pagination="true"
remoteSort="false"
singleSelect="false"
showFooter="false"
striped="true"
url="<%=root%>/ospm/loginInfo/doLoginInfoSearch.jhtml">
<thead>
<tr align="center">
<th field="ck" width="20" checkbox="true" width="20"></th>
<th field="loginCode" width="200">用户名</th>
<th field="statuValue" width="100">状态</th>
<th field="opt" formatter='optFormater' width="150">操作</th>
</tr>
</thead>
</table>

③向后台请求数据
datagrid有一个属性叫url,在进入页面后,它会通过ajax方式向后台发送请求,后台封装相应数据(JSON格式)再返回给前台即可显示。注意:datagrid在回调函数中必须获得两项json数据:total表示查询出的总结过,rows表示显示在table中的数据集合。
/**
* 封装Json数据
*/
long total = 0; // 符合查询的总条数
List<LoginInfoTableDto> lstTable = null; // 查询结果
total = (Long) mapLoginInfo.get(Constant4Ospm.TOTAL);
if (mapLoginInfo.get(Constant4Ospm.SEARCH_RESULT) != null) {
lstTable = (List<LoginInfoTableDto>) mapLoginInfo
.get(Constant4Ospm.SEARCH_RESULT);
} else {
//注:如果从数据库查询不出数据,也必须封装一个空的json集合,不然页面就会报js错误
lstTable = new ArrayList<LoginInfoTableDto>();
}
JSONObject datas = new JSONObject();
// 设置总共有多少条记录
datas.put(Constant4Ospm.TOTAL, total);
// 设置当前页的数据
datas.put(Constant4Ospm.PAGE_SIZE, lstTable);

④后台数据与表格关联
后台过来的数据怎么与表格每一列对应呢?其实很简单:后台rows中包含了名叫LoginInfoTableDto的javabean-json集合,datagrid的field和idField对应LoginInfoTableDto中的一个属性(大体上是这样,当然field也可以不对应javabean的属性,你可以进行一些转换)。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式