智能 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);  
            }
        };