0

jqGrid のツールバー検索/フィルタリングを実装しようとしています。いずれかのフィルターにテキストを入力して Enter キーを押しても何も起こりません。ここで何が間違っているのかわかりません。どんな助けでも大歓迎です:

jQuery("#list").jqGrid({
            datatype: 'json',
            url: 'GetIncidents.ashx?view=MyIncidents',
            height: "100%",
            scrollOffset: 0,
            jsonReader: {
                root: "rows",
                page: "page",
                total: "total",
                records: "records",
                repeatitems: false,
                cell: "cell",
                id: "ID",
                userdata: "userdata",
                subgrid: {
                    root: "rows",
                    repeatitems: true,
                    cell: "cell"
                }
            },
            colNames: ['ID', 'Title', 'Assigned To', 'Status', 'Priority', 'Classification', 'Affected User', 'Support Group', 'Last Modified'],
            colModel: [
                  { name: 'ID', index: 'ID', width: 40, sorttype: 'int', firstsortorder: 'desc' },
                  { name: 'Title', index: 'Title', width: 180 },
                  { name: 'AssignedUser', index: 'AssignedUser', width: 100, align: 'center' },
                  { name: 'Status', index: 'Status', width: 50, align: 'center' },
                  { name: 'Priority', index: 'Priority', width: 50, align: 'center' },
                  { name: 'Classification', index: 'Classification', width: 150, align: 'center' },
                  { name: 'AffectedUser', index: 'AffectedUser', width: 100, align: 'center' },
                  { name: 'TierQueue', index: 'TierQueue', width: 100, align: 'center' },
                  { name: 'LastModified', index: 'LastModified', width: 120, align: 'center', formatter: 'date', formatoptions: { srcformat: 'Y-m-d H:i:s0', newformat: 'm/d/Y h:i A'}}],
            pager: '#pager',
            rowNum: 15,
            width: 980,                
            sortname: 'ID',
            sortorder: 'desc',
            viewrecords: true,
            autowidth: true,
            gridview: true,
            ignoreCase: true,
            caption: 'All Open Incidents Assigned To Me',
            onSelectRow: function (id) { window.location = 'ViewIncident.aspx?id=' + id; }
        });

        jQuery("#list").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false, defaultSearch: "cn" });
4

2 に答える 2

0

jqGrid はフィルタリング機能をサーバーに依存しています。発信投稿アクションを調べると、フィルタリング データを渡す投稿に追加されている余分なデータが表示されます。

したがって、フィルタリングはサーバー上で行われ、フィルタリングされたデータセットは順序付け/ページングされ、jqGrid に戻されます。

私の考えでは、これは開始する場所です: ASP.NET MVC 2.0 jqgrid での検索の実装

その例から、セットアップには少し手間がかかりますが、そこから動的フィルタリングを処理するための優れたベースが得られます。非常に基本的なフィルタリングのみを扱っている場合は、おそらくいくつかのコンポーネントを使用して何かをハックすることができますが、基本的な要件をはるかに超えているため、この追加オプションに時間を費やす価値があります。

于 2013-02-13T18:23:52.077 に答える
0

いくつかのことは、最初に document.ready 関数を追加して、グリッドを起動する前にブラウザーをロードしてから、loadonce: true を追加してみてください。

それからそれを実行しようとすると、うまくいくはずです!

ここにコードがあります

 JQuery(document).ready(function(){
 jQuery("#list").jqGrid({
        datatype: 'json',
        url: 'GetIncidents.ashx?view=MyIncidents',
        height: "100%",
        scrollOffset: 0,
        jsonReader: {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: false,
            cell: "cell",
            id: "ID",
            userdata: "userdata",
            subgrid: {
                root: "rows",
                repeatitems: true,
                cell: "cell"
            }
        },
        colNames: ['ID', 'Title', 'Assigned To', 'Status', 'Priority', 'Classification', 'Affected User', 'Support Group', 'Last Modified'],
        colModel: [
              { name: 'ID', index: 'ID', width: 40, sorttype: 'int', firstsortorder: 'desc' },
              { name: 'Title', index: 'Title', width: 180 },
              { name: 'AssignedUser', index: 'AssignedUser', width: 100, align: 'center' },
              { name: 'Status', index: 'Status', width: 50, align: 'center' },
              { name: 'Priority', index: 'Priority', width: 50, align: 'center' },
              { name: 'Classification', index: 'Classification', width: 150, align: 'center' },
              { name: 'AffectedUser', index: 'AffectedUser', width: 100, align: 'center' },
              { name: 'TierQueue', index: 'TierQueue', width: 100, align: 'center' },
              { name: 'LastModified', index: 'LastModified', width: 120, align: 'center', formatter: 'date', formatoptions: { srcformat: 'Y-m-d H:i:s0', newformat: 'm/d/Y h:i A'}}],
        pager: '#pager',
        rowNum: 15,
        width: 980,                
        sortname: 'ID',
        sortorder: 'desc',
        viewrecords: true,
        autowidth: true,
        gridview: true,
        ignoreCase: true,
        loadonce:true,  //**you need to add this**
        caption: 'All Open Incidents Assigned To Me',
        onSelectRow: function (id) { window.location = 'ViewIncident.aspx?id=' + id; }
    });

    jQuery("#list").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false, defaultSearch: "cn" });

}))

于 2013-02-13T19:36:10.810 に答える