【问题标题】:jQgrid toolbar searching - dynamically remove search box from any columnjQgrid 工具栏搜索 - 从任何列中动态删除搜索框
【发布时间】:2015-09-26 05:24:05
【问题描述】:

我正在使用 jqgrid 4.4.4 版,现在我面临一个与工具栏搜索相关的问题。正如我在标题中提到的,我想在渲染网格期间或之后从任何列 “动态” 中删除工具栏搜索的搜索框。我用谷歌搜索,但我没有找到任何相关的解决方案来解决我的这个问题。 我像这样使用selColProp 属性

$('#<gridId>').jqGrid('setColProp', 'LotNo', {
    search: false
});

并且由于某些逻辑原因在loadcomplete 函数中提到。 如果有人知道如何做到这一点,请分享您的宝贵想法。

更新:现在我正在使用免费的 jqgrid 4.9.2 版,而且这个功能也没有发生。

【问题讨论】:

    标签: jquery jqgrid toolbar jqgrid-asp.net free-jqgrid


    【解决方案1】:

    搜索工具栏将被创建一次。它包括搜索工具栏中的所有可搜索列。如果您需要动态地更改search 属性,则必须在更改search 属性的值后重新创建搜索工具栏。您只需调用destroyFilterToolbar 删除搜索工具栏,然后再调用filterToolbar 一次。

    或者,您可以考虑在将search 属性设置为false 后隐藏搜索字段。相应的代码可能类似于

    $("#gs_LotNo").closest(".ui-search-table").hide();
    

    字符串gs_LotNoLotNo 列的输入字段的id。并使用$("#gs_LotNo").closest(".ui-search-table") 获得包含可选搜索菜单和x 按钮的外部表。您可以考虑在隐藏之前将字段的内容设为空($("#gs_LotNo").val("")),以确保输入字段中的当前值不会在过滤器中使用。

    【讨论】:

    • 我删除了setColProp 的代码并使用了您的代码,但没有任何反应。我已将此代码粘贴到我的 loadComplete 函数中。
    • 您应该不删除设置search: false。如果您需要更改search: false 的值,那么您应该这样做更改搜索工具栏之后(通过重新创建工具栏或隐藏字段)。您在loadComplete 中写到setColProp 的用法。为什么?在这种情况下我不能跟着你。你需要做什么以及多久做一次? loadComplete 将在应用过滤器、排序和分页等之后被调用。你的场景是什么?你如何填充网格? 何时您更改了LotNosearch 属性?你用的是哪个datatypeloadonce
    • 我没有将这段代码调用到loadComplete,而是在gridComplete 和wallaaaa 中调用了你的代码。它奏效了。谢谢先生。
    • @Rahul:不客气!在gridComplete 中调用这样的代码似乎我也错了。我建议您发布更完整的代码,这应该是您应该做的。当您稍后决定更改属性时,了解 如何用数据填充网格datatypeloadonce)非常重要。例如,如果您从服务器加载信息并使用datatype: "json",则可以更改beforeProcessing 回调中的列属性。
    • 是的..你说得对,我的datatype: json,我没有使用属性loadonce
    猜你喜欢
    • 1970-01-01
    • 2012-06-04
    • 2012-02-15
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 2011-07-26
    相关资源
    最近更新 更多