我的jqGrid
列定义如下
name : 'idmycolumn',
index : 'idmycolumn',
width : 80,
align : 'right',
search : true,
id名称(ìdmycolumn
)适用于我的SQL更新操作,但不适用于搜索。如何更改搜索操作的名称(作为另一个ID,让我们说idmysearch
)?
所以基本上我需要一个不同的SQL列来进行更新,因为我需要进行搜索。有机会这样做吗?
进一步澄清Oleg的问题如下
key: true
?不,不是rowid idmycolumn
列排序时需要使用哪个名称?用于搜索和排序的列名是否应该相同?搜索应该是“idmysearch”,其他任何东西(排序,...)“idmycolumn”loadonce: true
选项? loadonce:default / false 澄清第二部分:
由于我未在某处设置stringResult = true
(我刚检查过),default为false
。无论如何,该参数是一个很好的提示,谢谢。
但是,我也在服务器端解析过滤器,这是我目前用idmycolumn
替换idmysearch
的地方。我只是想知道在将过滤器发送到服务器之前是否可以在客户端预先替换该过滤器名称。
答案 0 :(得分:1)
解决方案非常依赖于您使用的方法。 jqGrid提供了许多选项,可用于更改方法的行为或将发送到例如服务器的参数格式。此外,还有许多回调和事件允许您在发送到服务器之前修改参数。了解搜索参数将保存在postData
选项中非常重要。所有选项都在您可以使用$("#gridid").jqGrid("getGridParam")
获取的对象内,或者您可以使用postData
获取特定选项,例如$("#gridid").jqGrid("getGridParam", "postData")
选项。返回的值是 jqGrid使用的内部对象的引用。所以你可以修改它,jqGrid将使用自动修改的值。在这种情况下,不需要使用setGridParam
等方法。
因此,您的问题的解决方案可能如下。您将beforeSearch
回调添加到filterToolbar
方法,该方法会将idmycolumn
的{{1}}属性从postData
修改为idmycolumn
:
idmysearch