Smartgwt:如何在listgrid上获取复选框值?

时间:2013-12-24 17:02:08

标签: checkbox smartgwt listgrid ischecked

我在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”)但没有成功......

2 个答案:

答案 0 :(得分:1)

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

我的任务是通过名为DataSource的特殊布尔字段来解决的,例如“已检查” 在ListGrid中,我有一个“已检查”字段,使用RecordClickHandler,我可以管理检查或取消选中事件。

DataSource代码:

DataSourceBooleanField checkField = new DataSourceBooleanField(“checked”);

ListGrid代码:

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");

答案 1 :(得分:0)

也许getSelectedRecords()方法可以帮到你!

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

这肯定会提供所有选中的记录(使用复选框)但是应该有一些值可以用来唯一地识别每条记录!