13

如何将自己的类添加到 jqgrid 中的列中。正如我看到的 html 输入元素正在获取类“FormElement”。我需要向特定列添加一个类。我找到了这个http://www.trirand.com/blog/?page_id=393/help/cell-tooltip-1/#p21526,但我不确定这是否是实现这一目标的最方便的方法?我的意思是遍历所有行和单元格,然后手动更改类属性——这似乎是这种“简单”任务的开销。

更新

我想添加类,因为我想使用这个多选小部件http://quasipartikel.at/multiselect/的功能。这个小部件通过定义的类工作。这就是为什么。

4

2 回答 2

23

可能您需要为相应的列使用classes属性。

我不确定这是否是您所需要的,因为您写了关于formFormElement中存在的类。如果您必须使用表单编辑的beforeShowForm回调,例如将类添加到编辑表单的相应字段的输入字段。表单中字段的id与对应列的属性相同。namecolModel

如果您确实需要为一列的单元格添加类属性,则还有另一种可能性:cellattrcolModel. 如果您需要为列的所有单元格添加类,则该方法可能是实用的。您可以根据行内容测试一些条件,并仅在条件发生时设置类。例如, 的用法将在列上的所有classes:'ui-state-error-text ui-state-error'单元格上设置相应的两个类(ui-state-error-textui-state-error) 。另一边的回调函数

cellattr: function(rowId, val, rawObject) {
    if (parseFloat(val) > 200) {
        return " class='ui-state-error-text ui-state-error'";
    }
}

仅当单元格值高于 200 时才允许您设置类。我没有rawObject在上述回调中使用,因此可以删除可选参数。我在回调中添加它只是为了提醒您可以使用该参数来访问该行另一列的值。因此,您可以在cellattr.

结果可以得到如下图所示的网格:

在此处输入图像描述

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

editoptions: {
    dataInit: function (domElem) {
        $(domElem).addClass("ui-state-highlight");
    }
}

结果你会得到像这样的编辑表单

在此处输入图像描述

您可以在此处找到演示。

于 2012-08-29T14:56:39.893 回答
8

有一个classescolmodel 选项可以满足您的需要。从jqGrid 文档

班级

细绳

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

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

于 2012-08-29T14:56:13.543 回答