非表示フィールドに保存されているデータを jqgrid に入力しようとしています。サーバーデータ(データタイプ= json)からグリッドにデータを入力する方法を試してみました。しかし、ここではこの方法が必要です。これが私がしたことです:
コントローラ:
DataTable myTable= MyData.getAllData();
string s = JsonConvert.SerializeObject(myTable);
model.GridData = s;
return this.View(model);
意見:
var mydata = $('#GridData').val()
;
ここで alert(mydata ) を使用すると、
[{ "id": 1, "ToCurrencyID": 2, "currency": "アラブ首長国連邦", "country": "アラブ首長国連邦ディルハム", "shortName": "AED", "ExchRate": 20.000}]
そして、ここにjqgridコードがあります:
jQuery(document).ready(function () {
jQuery("#list").jqGrid({ data: mydata,
datatype: "local",
height: 150,
width: 600,
rowNum: 10,
rowList: [10, 20, 30],
colNames: ['Sl#', 'currencyId_Hidden', 'Country', 'Currency', 'Short Name', 'Exchange Rate'],
//columns model/*
colModel: [
{ name: 'id', index: 'id', align: "left", sortable: false, width: '34px' },
{ name: 'ToCurrencyID', index: 'ToCurrencyID', sortable: false, align: "left", hidden: true },
{ name: 'currency', index: 'currency', align: "left", sortable: false, width: '366px' },
{ name: 'country', index: 'country', align: "left", sortable: false, width: '366px' },
{ name: 'shortName', index: 'shortName', width: '141px', sortable: false, align: "left" },
{ name: 'ExchRate', index: 'ExchRate', width: '382px', sortable: false, align: "right" }
],
pager: "#pager",
loadonce: true,
viewrecords: true,
caption: "Contacts"
});
});
問題は、グリッドにデータが取り込まれていないことです。
しかし、私が直接使用すると、
var mydata=[{ "id": 1, "ToCurrencyID": 2, "currency": "アラブ首長国連邦", "country": "アラブ首長国連邦ディルハム", "shortName": "AED", "ExchRate": 20.000}];
それは、正常に動作しています。
jqgrid には、単なる文字列ではなく、json 配列自体が必要だと思います。助言がありますか?