datagrid php json,easyui的datagrid取得自定义json信息

案例:

使用easyui的datagrid进行局部刷新时, table外的其他区域也要根据返回的数据动态取得值。

function loadData() {

$('#tb_list').datagrid('reload',{

name1: $('#name1').val(),

name2:$('#name2').val()

});

// 取得返回的列 更新tb_list外的其他区域

}

-------------------------------------------------------------------------------------

遇到一个问题,需要获得datagrid的总行数,把datagrid的API找了一遍,getRows这个方法也只能获取当前页中记录的行数.

发现datagrid依赖pagination这个组件,从这个线索找还真的找到了, 分享出来.

var options = $('#resulttable').datagrid('getPager').data("pagination").options;

var totalRowNum = options.total;

第一行:getPager获取页面对象进而获取pagination这个组件.

第二行:pagination组件提供了total这个属性.

From: http://blog.163.com/liuyb_94242/blog/static/421676462012111944220392/

---------------------------------------------------------------------------------------------------

上面是在网上找的,可能是因为没有使用easyui自带的分页标签,而使用了项目自定义的分页标签,所以easyui到这里$('#resulttable').datagrid('getPager')已经是空了,无法获得总行数,后来自己调试+跟踪+摸索了半天终于找到了一个解决方法:

服务器端返回json对象自定义:

public class DatagridJson {

private int total;

private List rows;

private Map footer; //自定义,封装自己想要得到的后台数据

// get, set 方法省略。。。。

}

使用ajax 请求服务器端controller时,将返回的json对象组装为自己有用的信息:

...

datagridJson.setRows(rowList);

Map footer = new HashMap();

footer.put("key1", "name1");

footer.put("key2", "name2");

footer.put("key3", "name3");

......

datagridJson.setFooter(footer);

return datagridJson;

最后前台使用如下方法:

function loadData() {

$('#tb_list').datagrid('reload',{

name1: $('#name1').val(),

name2:$('#name2').val()

});

// 取得返回的列 更新tb_list外的其他区域

var footer = $('#tb_list').datagrid('getFooterRows');

if (footer === undefined || footer == null) {

return;

}

var key1 = footer['name1'];

var key2 = footer['name2'];

var key3 = footer['name3'];

// 拿到后台的值 然后该干什么就干什么吧。

}

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值