智能 GWT 列表网格 - 在记录单击时将 hilite 设置为列表网格
Smart GWT List Grid - Setting a hilite to a list grid on record click
我正在尝试在列表网格的记录点击处理程序中设置一个 hilite。我厌倦了下面的代码,
我的hilites如下,
public static Hilite[] getWayBillSetHilites() {
return new Hilite[]{
new Hilite() {
{
setFieldNames("RECORD_VIEWED_STATUS");
setCriteria(new Criterion("RECORD_VIEWED_STATUS", OperatorId.EQUALS, "TRUE"));
setCssText(Constant.Css.TEXT_ITALIC_GRAY_32);
setTextColor("font-style:italic;color:#525252;");
setId("0");
}
}
};
}
网格的记录点击处理程序出现如下,
grid.addRecordClickHandler(new RecordClickHandler() {
@Override
public void onRecordClick(RecordClickEvent recordClickEvent) {
//gridWayBillSetGrid.getHiliteState()
//make RECORD_VIEWED_STATUS value "true"
recordClickEvent.getRecord().setAttribute("RECORD_VIEWED_STATUS", true);
gridWayBillSetGrid.enableHilite("0", true);
}
});
但是当我点击记录时,样式没有显示出来。
请善待这方面的建议。
我认为这是 hilites 的错误用例。请改用 getCellCSSText。
试试这个(覆盖 ListGrid
class 的 getCellCSSText
方法):
ListGrid grid = new ListGrid(...){
@Override
protected String getCellCSSText(ListGridRecord record, int rowNum, int colNum) {
if("true".equalsIgnoreCase(record.getAttribute("RECORD_VIEWED_STATUS"))){
return "font-style:italic;color:#525252;";
}
return super.getCellCSSText(record, rowNum, colNum);
}
};
我正在尝试在列表网格的记录点击处理程序中设置一个 hilite。我厌倦了下面的代码,
我的hilites如下,
public static Hilite[] getWayBillSetHilites() {
return new Hilite[]{
new Hilite() {
{
setFieldNames("RECORD_VIEWED_STATUS");
setCriteria(new Criterion("RECORD_VIEWED_STATUS", OperatorId.EQUALS, "TRUE"));
setCssText(Constant.Css.TEXT_ITALIC_GRAY_32);
setTextColor("font-style:italic;color:#525252;");
setId("0");
}
}
};
}
网格的记录点击处理程序出现如下,
grid.addRecordClickHandler(new RecordClickHandler() {
@Override
public void onRecordClick(RecordClickEvent recordClickEvent) {
//gridWayBillSetGrid.getHiliteState()
//make RECORD_VIEWED_STATUS value "true"
recordClickEvent.getRecord().setAttribute("RECORD_VIEWED_STATUS", true);
gridWayBillSetGrid.enableHilite("0", true);
}
});
但是当我点击记录时,样式没有显示出来。 请善待这方面的建议。
我认为这是 hilites 的错误用例。请改用 getCellCSSText。
试试这个(覆盖 ListGrid
class 的 getCellCSSText
方法):
ListGrid grid = new ListGrid(...){
@Override
protected String getCellCSSText(ListGridRecord record, int rowNum, int colNum) {
if("true".equalsIgnoreCase(record.getAttribute("RECORD_VIEWED_STATUS"))){
return "font-style:italic;color:#525252;";
}
return super.getCellCSSText(record, rowNum, colNum);
}
};