0

我正在尝试在列表网格的记录单击处理程序中设置一个 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);

        }
    });

但是当我点击记录时,样式没有显示出来。请对此提出建议。

4

2 回答 2

1

我认为这是 hilites 的错误用例。请改用 getCellCSSText。

于 2015-11-23T22:22:48.763 回答
1

试试这个(类的覆盖getCellCSSText方法ListGrid):

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);  
            }
        };
于 2015-11-25T13:47:58.537 回答