1

私は jqGrid のスターターです。ASP.NET で jqGrid を構築するためにこのコードを書きます。

var grid = $('#list');
grid.jqGrid({
    url: 'jQGridHandler.ashx',
    postData: { ActionPage: 'CostTypes', Action: 'Fill' },
    ajaxGridOptions: { cache: false },
    direction: "rtl",
    datatype: 'json',
    height: 490,
    colNames: ['CostId', 'CostNo', 'CostName', 'Remark '],
    colModel: [
        { name: 'COST_ID', width: 100, sortable: true, search:true, editable: false,
            hidden: true, key: true, index: 'COST_ID' },
        { name: 'COST_NO', width: 100, sortable: true, editable: true },
        { name: 'COST_NAME', width: 350, sortable: true, editable: true },
        { name: 'REMARK', width: 300, sortable: true, editable: true }
    ],
    gridview: true,
    rowNum: 30,
    rowList: [30, 60, 90],
    pager: '#pager',
    sortname: 'COST_ID',
    viewrecords: true,
    rownumbers: true
});
grid.jqGrid('navGrid', '#pager', { add: false, edit: false, del: true, search: true },
    {},
    {},
    { url: "JQGridHandler.ashx?ActionPage=CostTypes&Action=Delete",
        reloadAfterSubmit: false },
    { multipleSearch: true});

検索アイコンをクリックして検索ボックスを表示するとき テキストを入力するとき 例costNo=1jqGrid フィルターではありません このアクションはうまくいかないと思います。

EDIT 01:loadonce: true検索作業を追加しても、このオプションを削除すると検索が機能しない場合は、助けてください。ありがとう

4

1 に答える 1

2

使用する場合loadonce: true、データはグリッドに1回ロードされます。その後、datatypeに変更され"local"、リロード、並べ替え、検索(フィルタリング)などのすべてのアクションが、サーバーとの通信なしでローカルに実装されます。

ユーザーが検索を開始すると、グリッドが再ロードされます。を使用するurl: 'jQGridHandler.ashx', datatype: 'json'と、新しいリクエストがURLに送信されますjQGridHandler.ashx。いくつかの追加パラメーターは、データをフィルター処理する必要があることをサーバーに通知します。_searchパラメーターはに設定されtrueます。multipleSearch: true検索フィルターに関する残りの情報を使用するため、別のパラメーターで送信されますfilters。JSON形式の文字列です。形式については、ドキュメントで説明されています。したがって、サーバーはfiltersパラメーターをデコードし、グリッドデータをフィルター処理する必要があります(通常、パラメーターの値に基づいてSQLステートメントWHEREの一部を構成します)。SELECTfilters

答えには、コード例があり、デモプロジェクトをダウンロードできます。

于 2012-09-07T10:37:11.337 に答える