Easyui中combogrid从Json数据中载入显示的数据

时间:2022-09-15 12:54:22

早期开发中采用ashx+easyui搭配来进行,因此easyui中combogrid等控件要动态载入数据需从后台一个ashx的url中载入。采用MVC+easyui开发后也会将某个action写在url处,其实mvc在执行view的这个action同时可以通过viewbag将combogrid需要载入的数据直接一同从后台查询号传递给view,然后view页面上combogrid直接可以载入此Json数据,不用通过url的形式从后台载入数据,如果有多个这种控件的话估计效率应该能快不少。

原代码:

$("#mtype").combogrid({
panelWidth: 300,
panelHeight: 300,
idField: 'mtype',
textField: 'mtype',
fitColumns: true,
multiple: false,//多选
editable: false,
url: '@Url.Action("listmtype")',
columns: [[
{ field: 'mtype', title: '机型', width: 50 },
{ field: 'remark', title: '备注', width: 50 },
]]
});
现在可以在控制器中生成定义一个viewbag.mtype

前台view中实现的代码

$("#mtype").combogrid({
panelWidth: 300,
panelHeight: 300,
idField: 'mtype',
textField: 'mtype',
fitColumns: true,
multiple: false,//多选
editable: false,
url: '',
columns: [[
{ field: 'mtype', title: '机型', width: 50 },
{ field: 'remark', title: '备注', width: 50 },
]]
});
$("#mtype").combogrid("grid").datagrid('loadData', JSON.parse('@Html.Raw(ViewBag.mtype)'));//后台直接传Json数据的处理方式