web-dev-qa-db-ja.com

jqGridリロードグリッド

これは、jqGridベースのテーブルに列を追加することについての以前の私の質問に対する追加です。ここに私の新しいjsコードがあります:

_var col_names = ['First', 'Second', 'Third', 'Fourth', 'Fifth'];
var col_model = [
      {name:'invid', index:'invid', width:100}, 
      {name:'invdate', index:'invdate', width:90}, 
      {name:'amount', index:'amount', width:80, align:'right'}, 
      {name:'tax', index:'tax', width:80, align:'right'}, 
      {name:'total', index:'total', width:80, align:'right'}, 
];

function createGrid()
{
  var handle = $("#list").jqGrid({
    url:'data.xml',
    datatype: 'xml',
    mtype: 'GET',
    colNames: col_names,
    colModel : col_model,
  }); 
}
_

ドキュメントがロードされた後、createGrid();を呼び出すと、すべて正常に動作します。ここで、(空のデータを含む)新しい列を追加し、jqGridをリロードします。

_  $("#add_column").click(function() {
        $('#list').trigger("DestroyGrid"); // Also tried UnloadGrid

        col_names.Push('New');
        col_model.Push({name: 'test', index: 'test', width: 100});

        createGrid(); // And recreate grid
  });
_

しかし、何も起こりません、なぜですか?


[〜#〜] upd [〜#〜]

_  $("#add_column").click(function() {
        col_names.Push('New');
        col_model.Push({name: 'test', index: 'test', width: 100});

        $('#list').trigger("reloadGrid");
  });
_

同じ状況


PD2私はこれらを試しました:

_ajaxGridOptions: {cache: false},
loadonce:false
_

状況は変わりませんでした。

13
Max Frai

あなたはフォローについてすることができます

var counter=1; // to be able to click more then one time
$("#add_column").click(function() {
    $("#list").jqGrid('GridUnload');

    col_names.Push('New'+counter);
    col_model.Push({name: 'test'+counter, index: 'test'+counter, width: 100});
    counter++;

    createGrid();
});
15
Oleg

破壊/作成しないようにしてくださいが、.trigger("reloadGrid");

PD::loadonce:falseをグリッド作成パラメーターに渡そうとします

PD2::jQgridは、「オンザフライ」で列を変更しても動作しないようです。最初のグリッドを破棄して、代わりに別のグリッドを作成してみてください。

2
Vadyus