我试图从onSelectRow
事件中获取一个单元格值。
我可以使用以下方式实现:
celValue = $('#jqGrid').jqGrid ('getCell', rowid, 'id');
两个问题:
'jsonmap'
,而不是'name'
来获取它?谢谢,
塔尔。
答案 0 :(得分:0)
您可以先找到要从中获取数据的列的索引。您可以使用
之类的代码var $grid = $("#jqGrid"), colModel = $grid.jqGrid("getGridParam", "colModel"), cm, i,
iCol = -1, l = colModel.length, propName = "jsonmap", propVal = "start_time", val;
for (i = 0; i < l; i++) {
cm = colModel[i];
if (cm[propName] === propVal) {
iCol = i;
break;
}
}
if (iCol >= 0) {
val = $grid.jqGrid("getCell", rowid, iCol);
}
上述代码搜索属性iCol
(propVal
)中"start_time"
(propName
)列的索引"jsonmap"
。具有该属性的第一列将用作getCell
的选项。
以同样的方式,您可以搜索具有特定formatter
的列。我建议您在colModel
中使用列模板。如果您定义cmTemplate
$.extend(true, $.jgrid, {
cmTemplate: {
dateType: {
sorttype: "date", edittype: "date", formatter: "date",
formatoptions: { srcformat: "U/1000", newformat: "m/d/Y H:i:s" },
searchoptions: { sopt: [ "eq", "ne", "lt", "le", "gt", "ge" ] },
editoptions: { sopt: [ "eq", "ne", "lt", "le", "gt", "ge" ] },
searchrules: { date: true }
}
}
});
之后,您可以在template: "dateType"
中使用colModel
属性。在这种方式中,您可以定义许多使用相同格式化程序的不同类型。此外,您将具有可读性colModel
,可以非常容易地维护。您可以在width
中添加colModel
等可以覆盖的属性。在某种程度上,您可以为某些属性指定更好的默认值,但您可以像以前一样保持相同的灵活性。如果我检查您发布的the demo代码,我认为列模板对您来说非常有用。