2012-01-28 46 views
0

jqgrid用于显示来自服务器的库存状态。在url参数中使用控制器以json格式检索数据:如何禁用jqgrid加载数据检索

url: 'Grid/GetData' 

获取数据(甚至是0行)需要一些时间。这会在页面加载时导致明显的延迟。

如何在初始jqgrid加载时禁用GetData控制器调用? 在初始加载时,应该出现没有行的空网格。如果这样的命令是由用户发出

数据应该检索:进入

  • 搜索条件
  • 按下回车键在搜索工具条被压在工具栏的jqGrid
  • 刷新按钮。

回答

2

您应该在开始时使用datatype: 'local'。如果要从服务器加载数据,则应该将datatype更改为'json',方法为setGridParam方法,触发器reloadGrid

在许多情况下,如主/细网格我使用的方式。在开始时,详细的网格有datatype: 'local'。如果在主网格中选择一行,我将datatype设置为'json'以获取详细网格并重新加载它。在详细网格的postData中将使用来自主网格的选定行的ID。

+0

谢谢。我添加了数据类型:'local',并在loadComplete中调用了'$ grid.setGridParam({datatype:'json'})'看起来像这样可以在发出任何后续命令时启用正常的数据加载。我希望这不会造成任何副作用 – Andrus 2012-01-29 13:58:21

+0

@安德鲁斯:不客气!我想你可以在''loadComplete''中使用'$(this).jqGrid('setGridParam',{datatype:'json'});''。如果稍后调用'.trigger('reloadGrid')',或者用户点击排序,则网格中的分页等将在第一次从服务器重新加载。 – Oleg 2012-01-29 14:10:09

+0

谢谢。 Site.Master包含'$ .jgrid.no_legacy_api = true'。为什么我的电话不会导致错误? loadComplete方法处理程序在包含的.js文件中定义,他称为表单loadComplete。在这种情况下,$(this)不起作用,我将它改为'$ grid.jqGrid('setGridParam',{datatype:'json'})' – Andrus 2012-01-29 14:18:36