1

我在 cellClick 上有一个监听器,我得到了选定的记录,但我找不到方法来了解是否检查了此记录

如果选择了行,则方法 ListGrid.isSelected(ListGridRecord) 返回 true,如果选中则不返回

我的代码:

listGrid.setSelectionAppearance(SelectionAppearance.CHECKBOX);
            listGrid.addCellClickHandler(new CellClickHandler() {

                @Override
                public void onCellClick(CellClickEvent event) {

                    if(event.getColNum() == 0 && idMenu != null){
                        boolean isChecked = event.getRecord().???;

                        if(isChecked)
                            ....
                        else
                                                    ....
        }

我也尝试过 event.getRecord().getAttributeAsBoolean("_checkField") 没有成功......

4

2 回答 2

1

我找到了一个简单的解决方案......

我的任务是使用 DataSource 中名为“checked”的特殊布尔字段解决的。

数据源代码:

DataSourceBooleanField checkField = new DataSourceBooleanField("checked");

列表网格代码:

listGrid.addRecordClickHandler(new RecordClickHandler() {

@Override
public void onRecordClick(RecordClickEvent event) {
                Record rec = event.getRecord();

                boolean checked = rec.getAttributeAsBoolean("checked");

                if(checked){
                  ...   
                }else{
                   ...
                }

                rec.setAttribute("checked", !checked);

                catPgrid.saveAllEdits();
                catPgrid.refreshFields();
            }
        });


        ListGridField checkField = new ListGridField("checked", "Sel");
于 2014-02-27T09:30:49.600 回答
0

也许 getSelectedRecords() 方法会帮助你!

这是一个 API 参考:http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/grid/ListGrid.html#getSelectedRecords()

当然,这将提供所有被选中的记录(使用复选框),但应该有一些值可以用来唯一地标识每条记录!

于 2014-01-25T18:59:23.643 回答