jqGrid搜索

时间:2015-08-30 21:38:56

标签: javascript jqgrid

我的jqGrid列定义如下

        name : 'idmycolumn',
        index : 'idmycolumn',
        width : 80,
        align : 'right',
        search : true,

id名称(ìdmycolumn)适用于我的SQL更新操作,但不适用于搜索。如何更改搜索操作的名称(作为另一个ID,让我们说idmysearch)?

所以基本上我需要一个不同的SQL列来进行更新,因为我需要进行搜索。有机会这样做吗?

进一步澄清Oleg的问题如下

  • 如何在网格中填充rowid?第一列的整数值
  • idmycolumn是rowid吗?您是否在列中使用key: true?不,不是rowid
  • 您使用哪种编辑模式?您使用哪种搜索(工具栏搜索,搜索对话框,两者)?内联编辑,工具栏搜索
  • idmycolumn列排序时需要使用哪个名称?用于搜索和排序的列名是否应该相同?搜索应该是“idmysearch”,其他任何东西(排序,...)“idmycolumn”
  • 您是否使用loadonce: true选项? loadonce:default / false

澄清第二部分:

由于我未在某处设置stringResult = true(我刚检查过),defaultfalse。无论如何,该参数是一个很好的提示,谢谢。

但是,我也在服务器端解析过滤器,这是我目前用idmycolumn替换idmysearch的地方。我只是想知道在将过滤器发送到服务器之前是否可以在客户端预先替换该过滤器名称。

1 个答案:

答案 0 :(得分:1)

解决方案非常依赖于您使用的方法。 jqGrid提供了许多选项,可用于更改方法的行为或将发送到例如服务器的参数格式。此外,还有许多回调和事件允许您在发送到服务器之前修改参数。了解搜索参数将保存在postData选项中非常重要。所有选项都在您可以使用$("#gridid").jqGrid("getGridParam")获取的对象内,或者您可以使用postData获取特定选项,例如$("#gridid").jqGrid("getGridParam", "postData")选项。返回的值是 jqGrid使用的内部对象的引用。所以你可以修改它,jqGrid将使用自动修改的值。在这种情况下,不需要使用setGridParam等方法。

因此,您的问题的解决方案可能如下。您将beforeSearch回调添加到filterToolbar方法,该方法会将idmycolumn的{​​{1}}属性从postData修改为idmycolumn

idmysearch