【问题标题】:how to add custom filter parameter to MvcJqGrid postData which allready has filter on beforeRequest?如何将自定义过滤器参数添加到已经对 beforeRequest 进行过滤的 MvcJqGrid postData?
【发布时间】:2013-02-15 16:33:59
【问题描述】:

我有一个简单的 jqgrid

@(Html.Grid("something")
  .SetCaption("")
  .AddColumn(new Column("ID").SetHidden(true))
  .AddColumn(new Column("Name").SetLabel("Name").SetSearch(true))
  .SetUrl(Url.Action(something))
)

我在 javascript 中有var SomeOtherID = 2。 我需要在加载网格时添加这个 SomeOtherID 来过滤参数(事实上,同一页面上有很多网格,它们都需要这个),而不会失去默认的座位功能。我怀疑我需要在.OnBeforeRequest("addSomeOtherID()") 上添加这个功能,但是在里面做什么

function addSomeOtherID(grid)
{ 
var pd = grid.getGridParams("postData");
?????? here I need to add SomeOtherID to postData filters
grid.setGridParams({postData: pd});
}

【问题讨论】:

    标签: javascript jqgrid mvcgrid mvcjqgrid


    【解决方案1】:

    解决方案很简单。我怀疑 .OnBeforeRequest("addSomeOtherID(grid)") 成功了。

    function addGridSearchOption(grid, fieldName, fieldValue) {        
        if (grid[0].p.search == false) {
            f = { groupOp: "OR", rules: [] };
            f.rules.push({ field: fieldName, op: "cn", data: fieldValue });
            grid[0].p.search = true;
            $.extend(grid[0].p.postData, { filters: JSON.stringify(f) });
        }
        else {
            tFilters = eval('(' + grid[0].p.postData.filters + ')');
            var bAddRule = true;
            var i = 0;
            for (var tRule in tFilters.rules)
            {
                if (tFilters.rules[i].field == fieldName)
                {
                    tFilters.rules[i].data = fieldValue;
                    bAddRule = false;
                }
                i++;
            }
            if (bAddRule) {
                tFilters.rules.push({ field: fieldName, op: "cn", data: fieldValue });
            }grid[0].p.postData.filters = JSON.stringify(tFilters);
    
        }
    }
    

    【讨论】:

      【解决方案2】:

      使用 MvcJqgrid 可以为列设置默认搜索值,此处为示例:

      http://playground.webpirates.nl/MvcJqGrid/Home/DefaultSearchValue

      如果您查看页面的源代码,您可以看到它是如何完成的。

      【讨论】:

        【解决方案3】:

        这太棒了,我用过它,它很好用。不知道为什么@SpokeST 说它不可用,我没有启用搜索工具栏,它对我有用。

        为未来的读者提供了一个修复,请注意代码中的第 4 行使用“2”而不是 fieldValue 参数分配“数据”变量。我猜那是测试的剩菜。

        再次感谢!

        【讨论】:

        • tnx 确实是测试留下的 :)
        猜你喜欢
        • 2016-06-25
        • 1970-01-01
        • 2021-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-14
        • 2018-06-22
        • 1970-01-01
        相关资源
        最近更新 更多