Struts2jQuery网格插件只更改一个列标题样式

Struts2jQuery网格插件只更改一个列标题样式,struts2,jqgrid,struts2-jquery,struts2-jquery-grid,Struts2,Jqgrid,Struts2 Jquery,Struts2 Jquery Grid,是否可以更改网格中仅听到的一列的样式 sjg:gridColumn具有cssClass属性,但设置此css将仅应用于列下的行,而不是列标题 当时我得到的代码是: 在HTML页面中。如果要仅对一列进行更改 您可以使用setLabel方法: $(“#myGrid”).jqGrid('setLabel','Price','',“,{'background':'red'}) 或 $(“#myGrid”).jqGrid('setLabel','Price','myColorClass') 但我不能让它工作

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

sjg:gridColumn
具有
cssClass
属性,但设置此css将仅应用于列下的行,而不是列标题

当时我得到的代码是:

在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" />
这不起作用,只更改行而不是列标题


我还发现,
gridColumn
有一个
formatoptions
这能满足我的需要吗

没有声明性的方法为特定列设置列标题的样式/类别(我不包括显式设置id或列名的CSS规则的定义)。因此,您应该使用
setLabel
来设置它

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

.ui jqgrid.ui jqgrid视图{
字号:11px
}
规则中有两个类。如果您想更改具有
makethismall
类的列的值,那么您应该定义如下CSS规则

.ui-jqgrid.ui-jqgrid-view.makethismall{
字号:8px
}

.ui jqgrid view.makethismall{
字号:8px
}
无论如何,它至少应该像您想要覆盖的CSS规则那样复杂或更复杂

同样的,
后台
也将被应用,因为CSS规则也包含两个类

.ui小部件内容.ui状态默认值{
背景:。。。
}

因此,您还需要定义相应的深层(或深层)CSS角色,以便能够通过
class
attribute来编写它。

谢谢@Oleg。struts-2jquery-plugin生成必要的jQuery语句,因此我们自己不编写任何javascript。问题是该标记库没有将特殊类分配给特殊列。如果我可以强迫插件这么做,那么我将使用您的建议来定义CSS@AlirezaFattahi:jqGrid不提供和选项将CSS类分配给列标题。所以我确信struts-2jquery-plugin也没有相应的选项。因此,必须使用小型JavaScript代码分配类。最简单的方法是使用
setLabel
方法,就像我在回答中写的那样。无论如何,您应该在类上定义更复杂的CSS规则。
.makethismall{font-size:small;}
将不起作用,因为另一个规则
.ui jqgrid.ui jqgrid视图{font-size:11px}
将覆盖它。
.makeThisSmall{
  font-size : smaller;
}