动态Jqgrid选项

动态Jqgrid选项,jqgrid,Jqgrid,我有一个jqgrid,它在第一次加载时使用基于DB调用的ajax调用来加载。加载后,我将其存储在JSON字符串中,并在需要时从该字符串重新加载。有没有一种方法可以动态地设置以下选项,而不是为同一事物使用两个完全独立的jqgrid定义,一个用于Ajax调用,一个用于JSON数据 Ajax调用 url:'@url.Action(“GetData”、“Controller”), 数据类型:“json”, postData:param1:“param1” JSON调用: datatype:“jsons

我有一个jqgrid,它在第一次加载时使用基于DB调用的ajax调用来加载。加载后,我将其存储在JSON字符串中,并在需要时从该字符串重新加载。有没有一种方法可以动态地设置以下选项,而不是为同一事物使用两个完全独立的jqgrid定义,一个用于Ajax调用,一个用于JSON数据

Ajax调用

url:'@url.Action(“GetData”、“Controller”),
数据类型:“json”,
postData:param1:“param1”
JSON调用:

datatype:“jsonstring”,
datastr:sessionStorage.crmReportData,

基本上,JQGrid设置的其余部分对于这两个都是完全相同的,这是唯一的区别。有没有办法在第一次加载时使用第一组选项,如果JSON字符串存在,则使用第二组选项?

我希望我正确理解您的操作。如果要测试
会话存储.crmReportData
。如果它不是空的,则可以使用
数据类型:“jsonstring”
并从
会话存储.crmReportData
加载数据。否则,您需要从
url
加载数据。在这种情况下,您可以使用以下选项:

datatype:sessionStorage.crmReportData?“jsonstring”:“json”,
datastr:sessionStorage.crmReportData,
url:'@url.Action(“GetData”、“Controller”),
postData:{param1:“param1”},
如果使用
数据类型:“jsonstring”
,则将忽略选项
url
。如果使用
datatype:“jsonstring”
,则
postData的
param1
参数应该不会产生任何副作用。另一方面,从服务器加载数据时,将忽略选项
datastr
。因此,上述选项应该有效。

如果使用,则可以使用saveState和loadState方法。加载网格时,可以将其与“保存状态”一起存储,稍后可以使用“加载状态”加载保存的状态。这是