当前位置: 首页 > 工具软件 > PHP DataGrid > 使用案例 >

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

淳于亦
2023-12-01

案例:

使用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'];

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

}

 类似资料: