хорошо, я вернулся. Я полностью упростил свою задачу до трех простых полей, и я все еще застрял в одной строке, используя метод addJSONData. Я застрял на этом в течение нескольких дней, и как бы я ни переделывал вызов ajax, строку json, бла-бла-бла ... Я НЕ МОГУ заставить это работать! Я даже не могу заставить его работать как функцию при добавлении одной строки данных вручную. Может кто-нибудь опубликовать рабочий образец jqGrid, который работает с ASP.NET и JSON? Не могли бы вы включить 2-3 поля (предпочтительно строку, целое число и дату?). Я был бы рад увидеть рабочий образец jqGrid и просто ручное добавление объекта JSON с помощью метода addJSONData. Спасибо большое!! Если мне когда-нибудь это удастся, я опубликую полный пример кода для всех остальных публикаций для получения помощи от ASP.NET, пользователи JSON тоже на этом остановились. Снова. СПАСИБО!!
tbl.addJSONData (objGridData); // ошибка: tbl.addJSONData не является функцией !!
Вот что Firebug показывает, когда я получаю это сообщение:
• objGridData Всего объектов = 1 страница = 1 запись = 5 строк = [5]
○ Страница «1»
Записи "5"
Всего «1»
Строки [Идентификатор объекта = 1 PartnerID = BCN, Идентификатор объекта = 2 PartnerID = BCN, Идентификатор объекта = 3 PartnerID = BCN, еще 2 ... 0 = Объект 1 = Объект 2 = Объект 3 = Объект 4 = Объект]
(индекс) 0
(проп) ID (значение) 1
(проп) PartnerID (значение) "BCN"
(prop) DateTimeInserted (значение) Чт 29 мая 2008 12:08:45 GMT-0700 (тихоокеанское летнее время)
* Есть еще три строки
Вот значение переменной tbl (value) 'Table.scroll'
<TABLE cellspacing="0" cellpadding="0" border="0" style="width: 245px;" class="scroll grid_htable"><THEAD><TR><TH class="grid_sort grid_resize" style="width: 55px;"><SPAN> </SPAN><DIV id="jqgh_ID" style="cursor: pointer;">ID <IMG src="http://localhost/DNN5/js/jQuery/jqGrid-3.4.3/themes/sand/images/sort_desc.gif"/></DIV></TH><TH class="grid_resize" style="width: 90px;"><SPAN> </SPAN><DIV id="jqgh_PartnerID" style="cursor: pointer;">PartnerID </DIV></TH><TH class="grid_resize" style="width: 100px;"><SPAN> </SPAN><DIV id="jqgh_DateTimeInserted" style="cursor: pointer;">DateTimeInserted </DIV></TH></TR></THEAD></TABLE>
Вот полная функция:
$('table.scroll').jqGrid({
datatype: function(postdata) {
mtype: "POST",
$.ajax({
url: 'EDI.asmx/GetTestJSONString',
type: "POST",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "text", //not json . let me try to parse
success: function(msg, st) {
if (st == "success") {
var gridData;
//strip of "d:" notation
var result = JSON.parse(msg);
for (var property in result) {
gridData = result[property];
break;
}
var objGridData = eval("(" + gridData + ")"); //creates an object with visible data and structure
var tbl = jQuery('table.scroll')[0];
alert(objGridData.rows[0].PartnerID); //displays the correct data
//tbl.addJSONData(objGridData); //error received: addJSONData not a function
//error received: addJSONData not a function (This uses eval as shown in the documentation)
//tbl.addJSONData(eval("(" + objGridData + ")"));
//the line below evaluates fine, creating an object and visible data and structure
//var objGridData = eval("(" + gridData + ")");
//BUT, the same thing will not work here
//tbl.addJSONData(eval("(" + gridData + ")"));
//FIREBUG SHOWS THIS AS THE VALUE OF gridData:
// "{"total":"1","page":"1","records":"5","rows":[{"ID":1,"PartnerID":"BCN","DateTimeInserted":new Date(1214412777787)},{"ID":2,"PartnerID":"BCN","DateTimeInserted":new Date(1212088125000)},{"ID":3,"PartnerID":"BCN","DateTimeInserted":new Date(1212088125547)},{"ID":4,"PartnerID":"EHG","DateTimeInserted":new Date(1235603192033)},{"ID":5,"PartnerID":"EMDEON","DateTimeInserted":new Date(1235603192000)}]}"
}
}
});
},
jsonReader: {
root: "rows", //arry containing actual data
page: "page", //current page
total: "total", //total pages for the query
records: "records", //total number of records
repeatitems: false,
id: "ID" //index of the column with the PK in it
},
colNames: [
'ID', 'PartnerID', 'DateTimeInserted'
],
colModel: [
{ name: 'ID', index: 'ID', width: 55 },
{ name: 'PartnerID', index: 'PartnerID', width: 90 },
{ name: 'DateTimeInserted', index: 'DateTimeInserted', width: 100}],
rowNum: 10,
rowList: [10, 20, 30],
imgpath: 'http://localhost/DNN5/js/jQuery/jqGrid-3.4.3/themes/sand/images',
pager: jQuery('#pager'),
sortname: 'ID',
viewrecords: true,
sortorder: "desc",
caption: "TEST Example")};