【问题标题】:Arbitrary index (column name) for jqGrid searchjqGrid 搜索的任意索引(列名)
【发布时间】:2015-11-24 21:46:24
【问题描述】:

我有一个jqGrid 列定义如下

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

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

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


进一步澄清奥列格的问题

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

说明第二部分:

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

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

【问题讨论】:

  • 如何在网格中填充rowid? idmycolumn 是 rowid 吗?你在专栏中使用key: true 吗?您使用哪种编辑模式?您使用哪种搜索(工具栏搜索,搜索对话框,两者)?在按idmycolumn排序期间您需要使用哪个名称?搜索和排序的列名是否应该相同?您是否使用loadonce: true 选项?
  • 感谢您的反馈和澄清
  • 如果您使用工具栏搜索而不使用loadonce: true,那么还有一个选项。搜索数据的格式取决于您使用的filterToolbar 选项。 stringResult选项的默认值是false(我个人一直使用stringResult: true格式,在服务器上处理filters)。所以这意味着jqGrid只需添加idmycolumn=searchingValue作为附加参数,它将发送到服务器。你有案子吗?是否要更改参数名称?
  • 见上文,是的,我正在寻找一种在发送之前替换该参数名称的简单方法。作为替代方案,我可以在服务器端替换它(就像我现在所做的那样)。我主要是问这个问题,看看客户端或服务器端的替换是否更容易。 +1 stringResulthint。

标签: javascript jqgrid


【解决方案1】:

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

因此,您的问题的解决方案可能如下。您将beforeSearch 回调添加到filterToolbar 方法,这会将postDataidmycolumn 属性从idmycolumn 修改为idmysearch

$("#gridid").jqGrid("filterToolbar", {
    beforeSearch: function () {
        var postData = $(this).jqGrid("getGridParam", "postData");
        if (postData.hasOwnProperty("idmycolumn")) {
            postData.idmysearch = postData.idmycolumn;
            delete postData.idmycolumn;
        }
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 2019-01-19
    • 2012-10-22
    相关资源
    最近更新 更多