2

是否可以更改网格中只听到一列的样式?!

sjg:gridColumn一个cssClass属性,但是设置这个 css 只会应用于列下的行,而不是列标题。

JQGRID - 是否可以在 JavaScript 中更改 HTML 标题文本的背景颜色?我得到的代码如下:

在您的 HTML 页面中。如果您只想对一列进行更改,您可以使用 setLabel 方法:

$("#myGrid").jqGrid('setLabel','Price', '', {'background':'red'});

或者

$("#myGrid").jqGrid('setLabel','Price', '', 'myColorClass');

但我无法让它工作。

最后,由于列标题将具有唯一的 ID,我可以在下面使用:

document.getElementById("gridtable_sampleColumn").style.backgroundColor = "#FF0000";

那么你认为有更好的方法。我一直在寻找这样的东西:

<sjg:gridColumn name="sampleColumn" 
            cssClass="makeThisSmall" />

在我的 CSS 中

.makeThisSmall{
  font-size : smaller;
}

哪个不起作用,只更改行 css 而不是列标题。

我还发现gridColumn有一个formatoptions可以做我正在寻找的东西吗?!

4

1 回答 1

2

没有为特定列设置列标题的样式/类的声明性方法(我排除了明确设置 id 或列名的 CSS 规则的定义)。所以你应该使用setLabel来设置它。

如果您需要更改背景颜色,那么您应该考虑也background-image必须设置为none。此外,您应该不要忘记其他CSS 规则也将被应用,并且具有更具体CSS 选择器的规则将获胜。例如,font-size由于以下规则,将应用列标题中的ui.jqgrid.css

.ui-jqgrid .ui-jqgrid-view {
    font-size: 11px
}

在规则中有两个类。如果要更改具有makeThisSmall类的列的值,则应定义 CSS 规则,例如

.ui-jqgrid .ui-jqgrid-view .makeThisSmall {
    font-size: 8px
}

或者

.ui-jqgrid-view .makeThisSmall {
    font-size: 8px
}

无论如何,它至少应该像您要覆盖的 CSS 规则一样复杂或更复杂。

以同样的方式,background由于 CSS 规则也包含两个类,因此将被应用

.ui-widget-content .ui-state-default {
    background: ...
}

因此,您还需要定义相应的深层(或更深层)CSS 角色,以便能够通过class属性覆盖它。

于 2014-11-11T08:26:20.180 回答