Jqgrid 向列添加CSS类

Jqgrid 向列添加CSS类,jqgrid,Jqgrid,如何将自己的类添加到jqgrid中的列中。正如我看到的,html输入元素得到了类“FormElement”。我需要向特定列添加一个类。我发现了这一点,但我不确定这是否是实现这一点最方便的方法?我的意思是遍历所有的行和单元格,然后手动更改一个类属性——对于这样“简单”的任务来说,这似乎是一项开销 更新 我想添加类,因为我想使用这个multiselect小部件的功能。这个小部件通过定义的类工作。这就是为什么。有一个classescolmodel选项,可以满足您的需要。从: 班级 串 此选项允许向列中

如何将自己的类添加到jqgrid中的列中。正如我看到的,html输入元素得到了类“FormElement”。我需要向特定列添加一个类。我发现了这一点,但我不确定这是否是实现这一点最方便的方法?我的意思是遍历所有的行和单元格,然后手动更改一个类属性——对于这样“简单”的任务来说,这似乎是一项开销

更新


我想添加类,因为我想使用这个multiselect小部件的功能。这个小部件通过定义的类工作。这就是为什么。

有一个
classes
colmodel选项,可以满足您的需要。从:

班级

此选项允许向列中添加类。如果要使用多个类,则应设置一个空格。例如
classes:'class1 class2'
将为该列上的每个单元格设置class1和class2

在网格css中有一个预定义的类ui省略号,它允许将省略号附加到特定行。这在FireFox中也适用

可能需要对相应的列使用属性

我不确定它是否是您所需要的,因为您写的是表单中存在的
FormElement
类。例如,在这种情况下,您必须使用表单编辑的回调将类添加到编辑表单的相应字段的输入字段中。表单中字段的id与
colModel
对应列的
name
属性相同

如果确实需要向一列的单元格中添加class属性,那么还有一种可能性:为
colModel
列定义
cellattr
回调。如果需要为列的所有单元格添加类,那么这种方法可能是实用的。您可以基于行内容测试某些条件,并仅在条件发生时设置类。例如,使用
类:'ui-state-error-text ui-state error'
将在列上的所有单元格上设置相应的两个类(
ui-state error text
ui-state error
)。另一方面是回调函数

cellattr:function(rowId、val、rawObject){
如果(浮动(val)>200){
返回“class='ui-state-error-text ui-state-error';
}
}
仅当单元格值大于200时,才允许设置类。我没有在上面的回调中使用
rawObject
,因此可以删除可选参数。我在回调中添加它只是为了提醒您可以使用该参数访问行中其他列的值。因此,您可以在
cellattr
中实现更复杂的场景

因此,可以得到如下图所示的网格:

已更新:如果需要在编辑表单的输入字段中添加
,您还可以使用的
dataInit
回调。在这种情况下,使用将非常简单。例如,您可以执行以下操作:

编辑选项:{ dataInit:函数(domElem){ $(domElem).addClass(“ui状态突出显示”); } } 因此,您将得到如下编辑表单


您可以找到的演示。

谢谢您奥列格提供了如此全面的答案,我认为beforeShowForm更适合我的情况,因为我只在表单编辑中需要它。@Anatoliy:不客气!可能对您来说,
dataInit
的用法更为实用:请参阅我答案的更新部分。是的,它工作正常。看来这是实现这一目标的最短途径。万分感谢!很高兴看到,至少有3种方法可以解决这个问题。谢谢你,贾斯汀,我不知道这个选项。正如我所说,我知道这应该是一件特别的事情。