1

我有一个简单的 jqgrid

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

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

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

3 回答 3

2

解决方案很简单。正如我所怀疑的那样 .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);

    }
}
于 2013-03-01T09:39:30.553 回答
0

使用 MvcJqgrid 可以为列设置默认搜索值,这里有一个示例:

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

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

于 2013-03-01T10:19:14.460 回答
0

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

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

再次感谢!

于 2013-05-02T04:51:11.300 回答