jqGridでオートロードを無効にして、必要なときにデータを手動でロードする方法は?
ありがとう。
サーバーからのデータに設定datatype
した場合'local'
は読み込まれません。データのロードを強制するには、メソッドに変更datatype
する'json'
か、メソッド'xml'
に関して変更できます ( http://www.trirand.com/jqgridwiki/doku.php?id=wiki:optionsおよびhttp://www.trirand.com/jqgridwikiを参照)。 /doku.php?id=wiki:methods#grid_related_methods ) メソッドを呼び出します。setGridParam
trigger("reloadGrid")
jqGridが、あなたが求めた情報も含むデータをロードしていないことを確認してください。
テーブルにデフォルトの URL を設定しないでください。そして、データをロードする必要があるときに(たとえば、ボタンを押すことによって)インストールしてから .trigger("reloadGrid")
.
あなたの例:
jQuery("#grid").jqGrid(
{
//Simply comment out the URL
//url :"salepointsprovider.php",
datatype:"json",
colModel :[
{name:'SalePointId', index:'SalePointId'},
{name:'Name', index:'Name'}
]
}
$('#ShowRecordsButton').click(function () {
jQuery("#grid").jqGrid('setGridParam',
{url:"salepointprovider.php?SalePointId=" + argSalePointId, page:1});
jQuery("#grid").trigger('reloadGrid');
}
サーバーにリクエストを送信するURLのない私のグリッド:
.../?_search=false&nd=1370817124473&rows=20&page=1&sidx=&sord=asc
データ型を設定: "ローカル" 問題を解決します。グリッドをリロードする
`関数 reloadGrid(gridId, gridData){ $(gridId).jqGrid('clearGridData'); // 空でないグリグが必要 (http://www.trirand.com/blog/?page_id=393/help/triggerreloadgrid-not-work/ を参照) $(gridId).jqGrid('setGridParam', {data: gridData}).trigger('reloadGrid'); } `
データ型を変更する必要はありません(少なくとも私のjsonの場合は認識されます)
treegrid では、datatype = 'local' を使用できませんでした。'local' の代わりに、datatype = 'jsonstring' を設定し、空の偽のデータと jsonReader を定義します。jsonReader は、取得したデータに従って正しく定義する必要があります。オレグの答えをありがとう。また、データをロードする必要がある場合は、データ型を「json」に変更するだけです。
var fakeData ={
rows: []
};
...
datatype: 'jsonstring',
datastr: fakeData,
...
jsonReader: {
repeatitems: false,
root: function (obj) { return obj.rows; },
page: function (obj) { return 1; },
total: function (obj) { return 1; },
records: function (obj) { return obj.length; }
}