0
Вызывается код attrSetting
. Если я изменю его на {"name":"A", "index":"0", "cellattr":attrSetting}
. Это нормально. И что же мне делать? Cellattr рассматривает его как строку не как функцию.jqGrid colModel, не вызывающий функцию
var gridData = {"list":[{"A":"abc", "B":"def", "C":"IRIS", "D":"Testing","E":"17-12- 2012","F":"Test", "attr":{"A":{"rowspan": 3}}},{"A":"abc", "B":"def", "C":"IRIS", "D":"Testing","E":"17-12-2012","F":"Test", "attr":{"A":{"display":"none"}}},{"A":"abc", "B":"def", "C":"IRIS", "D":"Testing","E":"17-12-2012","F":"Test", "attr":{"A":{"display":"none"}}}]};
$(document).ready(function(){
prepareGrid();
});
prepareGrid = function(colModel) {
$("#grid").jqGrid({
datatype : 'local',
contentType : 'application/json',
data : gridData.list,
loadtext : "Loading...",
colNames : ['TB Element','GL Element', 'Company Name', 'Status', 'Date', 'User'],
colModel : [
{"name":"A", "index":"0", "cellattr":"attrSetting" },
{name:"B", index:1 },
{name:"C", index:2},
{name:"D", index:3},
{name:"E", index:4},
{name:"F", index:5}
],
width : '500px',
height : '200px',
rownumWidth : 30,
scrollrows : true,
shrinkToFit : false,
rownumbers : true,
viewrecords : true,
});
};
function attrSetting(rowId, val, rawObject, cm) {
var attr = rawObject.attr[cm.name], result;
if (attr.rowspan) {
result = ' rowspan=' + '"' + attr.rowspan + '"';
} else if (attr.display) {
result = ' style="display:' + attr.display + '"';
}
return result;
};
Цистерны для ваших предложений. Но мой colModel происходит из java, который динамически создается из базы данных. Нет единственной функции, такой как 'attrSetting', у меня есть 5 различных функций. Когда я готовлю json для этой модели вызова, он автоматически берет строку. ** Я делаю это json с помощью jackson ** – Mitesh
@Mitesh: Добро пожаловать! Посмотрите на [ответ] (http://stackoverflow.com/a/5175127/315935), в котором описывается обходной путь, который вы можете использовать. – Oleg