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 が使用できないと言っている理由がわかりません。検索ツールバーを有効にしていないので、うまくいきます。

将来の読者のために 1 つの修正として、コードの 4 行目で、fieldValue パラメータの代わりに「2」を使用して「data」変数を割り当てていることに注意してください。テストの残り物だと思います。

再度、感謝します!

于 2013-05-02T04:51:11.300 に答える