0

重複の可能性:
json 形式の php から jqGrid にデータを追加できない

asp.net の Controller Action から返されたデータを使用して jgqgrid をロードしようとしています。Razor View エンジンで MVC 3 を使用しています。jqGridから行われたajaxリクエストがデータを返しているが、データがjqgridに表示されていないことを、フィドラーとファイアーバグで見ることができます。関連するすべてのpsotsと回答を見てきました。jqgrid スクリプト ファイルの前にロケール ファイルが指定されていることを確認しました。GET と POST の両方を試し、それに応じてコントローラーでアクション属性を変更しました。

<script type="text/javascript">
$(document).ready(function () {
    $("#list").jqGrid({
        datatype: 'json',
        url: '/Execution/GetAllExecutions/',
        jsonReader: { repeatitems: true },
        mtype: 'POST',
        rowList: [5, 10, 20, 30],
        viewrecords: true,
        colNames: ['OrderID'],
        colModel: [
            { name: 'OrderID', index: 'OrderID', align: 'right',key:true, width: 250}
        ],
        pager: '#pager',
        sortname: 'OrderID',
        sortorder: 'desc',
        height: "100%",
        width: "100%",                                   
        caption: 'Orders'
    });
});
</script>

<table id="list"><tr><td></td></tr></table>

<div id="pager"></div>
4

1 に答える 1

1

サーバーから返される JSON 応答の形式は、使用する形式に対応していませんjsonReader: { repeatitems: true }。次のようなものを使用する必要があります

jsonReader: {
    repeatitems: false,
    root: function (obj) { return obj; },
    page: function () { return 1; },
    total: function () { return 1; },
    records: function (obj) { return obj.length; }
}

さらにloadonce: true、サーバー側でページングを実装していないように見えるため、オプションを追加することをお勧めします。

于 2012-10-29T12:55:46.370 に答える