JQuery jqGrid loadComplete

时间:2014-12-03 17:52:01

标签: jquery jqgrid struts

我有一个使用jqGrid构建的表。如果一个单元格为空(gridtable1_Age),我希望另一个单元格(gridtable1_Name)中的文本为粗体。我正在尝试使用loadComplete但它似乎没有工作或者我在正确的位置使用它。

jQuery("#grid1").jqGrid('setGridParam', opts).trigger("reloadGrid", [ {
    page : 1,
    loadComplete : function () {
        $('td[aria-describedby=grid1_Age]:empty', 
            '#gridtable1').parent().find('td[aria-
             describedby=grid1_Name]').css('font-weight', 'bold');
                                }
                            } ]);

编辑:我的网格是使用Struts2标签构建的

2 个答案:

答案 0 :(得分:2)

我认为您有AgeName列。您可以做的是在cellattr列中定义Name属性,如下所示

cellattr: function (rowId, val, item) {
    if (item.Age === "") { // or some very close test
        return ' style="font-weight: bold;"';
    }
}

的情况下,将使用正确的CSS样式创建网格。在页面上进行任何更改都会更快(请参阅the answer,其中描述了所有修改都遵循整个页面的其他重排,如果可能的话,应该减少修改)。

顺便说一下,你发布的代码不起作用,因为"空"单元格可能包含 符号。

答案 1 :(得分:0)

我认为grid1_Agegrid1_name需要在选择器中用引号括起来,如下所示:

    loadComplete : function () {
    $('td[aria-describedby="grid1_Age"]:empty', '#gridtable1').parent().find('td[aria-
         describedby="grid1_Name"]').css('font-weight', 'bold');
                            }

如果grid1_Age和/或grid1_name是变量而不是文字,那么正确的方法是:

loadComplete : function () {
    $('td[aria-describedby="'+grid1_Age+'"]:empty', '#gridtable1').parent()
    .find('td[aria-describedby="'+grid1_Name+'"]').css('font-weight', 'bold');
                            }
                        } ]);