动态 Jqgrid 选项

Dynamic Jqgrid options

我有一个 jqgrid,它在第一次加载时使用 ajax 调用来基于数据库调用进行加载。加载后,我将其存储在 JSON 字符串中,并在需要时从中重新加载。与其对同一事物有 2 个完全独立的 jqgrid 定义,1 个用于 Ajax 调用,1 个用于 JSON 数据,有没有办法动态设置以下选项?

Ajax 打电话...

url: '@Url.Action("GetData", "Controller")',
datatype: "json",
postData: param1: "param1"

JSON 来电:

datatype: "jsonstring",
datastr: sessionStorage.crmReportData,

基本上,其余的 JQGrid 设置对于两者来说是完全相同的,这些是唯一的区别。有没有一种方法可以在第一次加载时使用第一组选项,如果 JSON 字符串存在则使用第二组选项?

希望我能正确理解你所做的事情。如果你想测试sessionStorage.crmReportData。如果它不为空,那么您可以使用 datatype: "jsonstring" 并从 sessionStorage.crmReportData 加载数据。否则你想从 url 加载数据。在这种情况下,您可以使用以下选项:

datatype: sessionStorage.crmReportData ? "jsonstring" : "json",
datastr: sessionStorage.crmReportData,
url: '@Url.Action("GetData", "Controller")',
postData: { param1: "param1" },

如果您使用 datatype: "jsonstring",选项 url 将被忽略。如果使用 datatype: "jsonstring"postData 的参数 param1 应该没有副作用。另一方面,如果从服务器加载数据,选项 datastr 将被忽略。因此,上述选项应该有效。