如何使jqgrid treegrid第一行文本加粗

jqgrid treegrid使用下面的代码定义。 第一级数据仅包含jqgrid第一行中显示的单个节点。 如何使这个(treegrid第一行)文本加粗?

我试过了

#tree-grid .cell-wrapper { font-weight: bold; } 

但这会使所有节点变粗。

如何只使第一个节点(第一行)加粗?

treegrid定义为

  var treegrid = $("#tree-grid"); treegrid.jqGrid({ loadComplete: function (data) { $('.tree-leaf', $(this)).css('width', '0px'); }, datatype: "json", mtype: "POST", height: "auto", loadui: "disable", treeGridModel: "adjacency", colModel: [ { name: "id", width: 1, hidden: true, key: true }, { name: "menu", classes: "treegrid-column" }, { name: "url", width: 1, hidden: true } ], autowidth: true, treeGrid: true, ExpandColumn: "menu", rowNum: 2000, ExpandColClick: true, } ); treegrid.parents("div.ui-jqgrid-view").children("div.ui-jqgrid-hdiv").hide(); 

更新

我试过了

 #tree-grid .cell-wrapper :first-child { font-weight: bold; } 

但粗体字不适用。

Firebug显示元素是

 Text which should be bold 

它看起来像:第一个孩子不适用这种风格。

Text(span元素)位于第二个网格行内(第二个元素内)。 它的行以<tr id="1" class="ui-widget-content ..开头。也许可以使用它来进行选择。

从firebug完成jqgrid布局

 
Loen...
...

UPDATE2

我试着通过添加Oleg回答

 .first-row { font-weight: bold; } 

 rowattr: function (rd) { alert('rowattr'); return {"class": "first-row"}; }, 

警报框不会出现。 另外,如何仅在treegrid中的第一行应用它?

更新3

根据Oleg的回答,我升级到4.4.1(试过4.4.4,但它不允许打开第​​一个节点)。 文字仍然不是粗体。 萤火虫表明了这一点

 .ui-jqgrid tr.jqgrow td { font-weight: normal; 

after第一行类after应用,因此该类没有任何效果。

firebug输出是:

 .ui-jqgrid tr.jqgrow td { font-weight: normal; /* this overrides my style !! */ white-space: pre; } .treegrid-column { cursor: pointer; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); } .first-row { font-weight: bold; } 

以下代码用于在加载时打开树:

  gridComplete: function () { setTimeout(function () { var rData2 = treegrid.getGridParam('data'); treegrid.expandRow(rData2[0]); treegrid.expandNode(rData2[0]); },0); }, 

在4.4.4中它不打开树。 在4.4.1中它起作用。 哪种方法可以使第一个节点加粗并打开它?

我想你可以通过使用rowattr解决问题,如果你想让整行rowattr (参见答案 )。 您可以在指定的行上指定其他classstyle属性。 或者,您可以使用cellattr仅在单元格上指定类或样式,例如仅在"menu"列中的单元格上(请参阅答案 )。 我在引用的答案中使用了标准网格,但您可以使用与TreeGrids相同的方式使用rowattrcellattr 。 对TreeGrid中存在的列parentlevelisLeaf的访问可能对您的实现有所帮助。

更新 :这是一个标记粗体所有没有parent项的项目的演示 :

在此处输入图像描述

和另一个演示使用更具体的规则:

在此处输入图像描述

在这两种情况下我都使用CSS规则

 .ui-jqgrid tr.myMarking td { font-weight: bold; } 

rowattr的实现非常简单,例如可以如下所示

 rowattr: function (rd) { if (rd.parent === "null" && rd.name === "Cash") { return {"class": "myMarking"}; } } 
 #tree-grid .cell-wrapper:first-child { font-weight: bold; } 

你只需要写你的.css声明的’first-child’。

1
Text which should be bold