在我们的项目中,我们在编辑模式中选择控件,以应用更改事件:
var rowSelector = '#' + rowid + '_';
var controlSelector = rowSelector + columnName
var $(controlSelector).change(function () {
//code here
}
现在的问题是,对于一些较大的重构(单元格编辑,使用格式化程序等),内部控件的ID不是格式为rowid_columnName,而是使用序列号而不是rowid。因此,例如,select元素包含id="1_ColumnName"
而不是"90433_ColumnName"
(90433是tr
的id)
这实际上提出了这些问题:
cellEdit:true
?答案 0 :(得分:1)
如果以错误的方式填充网格,通常会出现问题。重要的是要了解jqGrid 总是将id
属性分配给网格的每一行(到<tr>
)。因此,您必须通知jqGrid它应该在输入数据中获取值。如果您使用具有命名属性的项目数组作为jqGrid的输入,并且id
具有例如_myId
值,那么您应该使用jsonReader: {id: "_myId", repeatitems: false}
。或者,您可以在另一个案例中使用colModel
中的id值列。在这种情况下,您可以将key: true
属性添加到colModel
中列的定义中。如果您不需要将jsonReader
与id
属性一起使用。
顺便说一下,我不理解你所包含的change
代码。您通常不需要使用此类代码。 editoptions的dataEvents
将是更好的选择。