У меня есть функция в коде моего сервера, которая возвращает список ElementRow
объектов:
public class ElementRow {
public string AreaName { get; set; }
public YearData CurrentYear { get; set; }
public YearData PreviousYear { get; set; }
}
public class YearData {
public int Value1 { get; set; }
public int Value2 { get; set; }
}
Эти классы генерируют json, подобный этому:
{"d":
{
"Total":2,
"Page":1,
"Records":30,
"Rows":[
{"AreaID":0,"CurrentYear":{"Value1":1,"Value2":2},"PreviousYear":{"Value1":1,"Value2":2}},
{"AreaID":1,"CurrentYear":{"Value1":5,"Value2":4},"PreviousYear":{"Value1":1,"Value2":2}},
{"AreaID":2,"CurrentYear":{"Value1":2,"Value2":1},"PreviousYear":{"Value1":1,"Value2":2}},
{"AreaID":3,"CurrentYear":{"Value1":1,"Value2":3},"PreviousYear":{"Value1":1,"Value2":2}}
],
"UserData":null
}
}
У меня естьопределил colModel для поддержки этой структуры данных и хотел бы создать пользовательскую функцию форматирования для форматирования объекта типа YearData
в одном столбце.Мой colModel выглядит следующим образом:
$("#dashboard").jqGrid({
url: wsBaseUrl + 'MyWebService.asmx/MyMethod',
colNames: ['Area Name','Current Year', 'Previous Year'],
colModel: [
{ name: 'AreaName', index: 'AreaName', width: 120, template: colTextTemplate },
{ name: 'CurrentYear', index: 'CurrentYear', width: 100, align: 'center', sortable: false, formatter: YearDataFormatter },
{ name: 'PreviousYear', index: 'PreviousYear', width: 100, align: 'center', sortable: false, formatter: YearDataFormatter }
],
jsonReader: {
id: "AreaID"
},
pager: $('#dashboard_pager'),
sortname: 'AreaName',
sortorder: "asc",
height: '250',
rownumbers: false,
gridview: false,
subGrid: true,
//subgrid definition omitted
});
и затем определяет функцию YearDataFormatter
следующим образом:
function YearDataFormatter(cellvalue, options, rowObject) {
var table = "<table><tr>";
table += "<td>" + cellvalue.Value1 + "</td>";
table += "<td>" + cellvalue.Value2 + "</td>";
table += "</tr></table>";
return table;
};
В любом случае, когда я пытаюсь выполнить эту функцию, проблема заключается в том, что внутри YearDataFormatter
function значение параметра cellvalue
не определено, а если посмотреть на него с помощью отладчика, в параметре rowObject
есть допустимое значение.
Как правильно получить доступ к значению этой ячейки?
Кроме того, есть ли возможность изменить заголовок для определенного столбца?Я хотел бы создать двухстрочный заголовок, но если я добавлю разметку внутри опции colNames
, высота заголовка не изменится соответственно.
Спасибо за вашу поддержку!