我有 2 个 jqGrid 表,然后我想从同一个 asp.net-mvc Controller 操作中刷新。现在我正在单独执行此操作,但这是一种浪费,因为两个表的原始数据源是相同的,所以我在后端运行相同的查询两次。理想情况下,我想调用一次 mvc Controller 操作,然后将 2 个不同的数据集返回给客户端。
jqGrid 和 asp.net-mvc 可以吗?
最佳答案
我建议您使用一个带有 datatype: "json"
和 loadonce: true
选项的网格(稍后我将其命名为“第一个网格”)和另一个网格使用 数据类型:“本地”
。服务器的响应应该包含两个部分:一个包含第一个网格的完整数据(所有页面),第二个包含完整> 第二个网格的数据。第一个网格的 jsonReader
的 root
属性可以配置为处理第一部分。第一个网格的回调 beforeProcessing
可用于清除第二个网格,设置 data
参数并重新加载第二个网格。 beforeProcessing
在该场景中的优点是仅在 Ajax 调用服务器的情况下执行。例如,loadComplete
也会在本地排序或分页时执行。可以定义第二个网格的“刷新”按钮,将第一个网格的数据类型
设置为“json”
,然后触发“第一个 网格的 reloadGrid”。第一个网格(添加“刷新”按钮)的 navGrid
调用应包含 beforeRefresh
回调,将 datatype
重置为 "json “
。以这种方式,所有网格刷新都将从服务器刷新数据,而不是本地重新加载。
实现上述方案将满足您的所有需求。由于使用 loadonce: true
,您还将减少 URL 的调用次数并提高两个网格的责任。在这种情况下,两个网格中的数据排序、分页和过滤/搜索将由 jqGrid 本地实现。无需调用服务器,非常快速的分页、排序和过滤。
关于asp.net-mvc - 我如何从同一个 asp.net-mvc Controller 操作中刷新两个 jqGrid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21978069/