1

私は問題があります。LoadComplete は、データがグリッドに渡される前に発生します。

私はこのフォームを持っています: ここに画像の説明を入力

jquery Post で新しい行データをサーバーに渡します。そして、グリッドを更新します

$('#grid').trigger("reloadGrid");

そのイベントがスローされた後、この関数を実行するとalert($('#grid').jqGrid('getCol', 'Unit', false, 'sum');)、以前の値が表示されます (項目を追加する前の実際の値)。したがって、2行ある場合、値は

ここに画像の説明を入力

そして、3 番目の値 - 1 を追加しました。そして、ポップアップ ショー2が3を期待していました。行を削除すると、同じ問題が発生します My grid:

jQuery("#grid").jqGrid({
        caption: 'Timesheet',
    url:'/GetData',
        editUrl: '/EditRow'
    datatype: "json",
    colNames: ['Id','Start Time', 'End Time', 'Unit'],
        colModel: [
                     { name: 'Id', index: 'Id' },
                     { name: 'StartTime', index: 'StartTime' },
                     { name: 'EndTime', index: 'EndTime' },
                     { name: 'Unit', index: 'Unit' }
                 ],
    rowNum:10,
    rowList:[10,20,30],
    pager: '#pager2',
    sortname: 'id',
    viewrecords: true,
    sortorder: "desc",
    postData: { entityId: function () {
                    return $('#GetId').val();
                },
                loadComplete: function (data) {
                      **alert($('#grid').jqGrid('getCol', 'Unit', false, 'sum');)**
                    }
    
});
jQuery("#grid").jqGrid('navGrid','#pager2',{edit:false,add:true,del:false});

例を追加しました。 http://jsfiddle.net/5bmVt/1/

編集済み。修正例 http://jsfiddle.net/SUvvW/1/

4

2 に答える 2

2

コード

alert($('grid').jqGrid('getCol', 'Unit', false, 'sum'));

私が間違っているようです。それは次のようなものかもしれません

alert($('#grid').jqGrid('getCol', 'Unit', false, 'sum'));

ただし、$(this)内部loadCompleteおよびその他のコールバックを使用することをお勧めします。

alert($(this).jqGrid('getCol', 'Unit', false, 'sum'));

更新: デモのコードの主な問題は、データを入力するloadCompleteに呼び出されることです。さらに、グリッドを埋めることは、私が知っている最も遅い方法です。グリッドのすべてのデータでパラメーターを使用し、さらにパフォーマンスを向上させるために使用する必要があります。ここで変更されたデモを参照してください。addRowDatadatagridview: true

于 2012-06-13T09:24:31.177 に答える
0

The problem was bug in my code. So it is not the jq Grid issue.

于 2012-06-20T10:10:19.127 に答える