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

Checkbox Smartgwt:如何在listgrid上获取复选框值?,checkbox,smartgwt,listgrid,ischecked,Checkbox,Smartgwt,Listgrid,Ischecked,我在cellClick上有一个侦听器,我得到了所选的记录,但我找不到一种方法来理解是否检查了该记录 方法ListGrid.isSelected(ListGridRecord)在选中行时返回true,而在选中行时返回true 我的代码: listGrid.setSelectionAppearance(SelectionAppearance.CHECKBOX); listGrid.addCellClickHandler(new CellClickHandler() {

我在cellClick上有一个侦听器,我得到了所选的记录,但我找不到一种方法来理解是否检查了该记录

方法ListGrid.isSelected(ListGridRecord)在选中行时返回true,而在选中行时返回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(“\u checkField”)但没有成功…

也许getSelectedRecords()方法会对您有所帮助

以下是API参考:


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

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

我的任务是使用数据源中名为“checked”的特殊布尔字段来解决的 在ListGrid中,我有一个字段“checked”,通过RecordClickHandler,我可以管理check或uncheck事件

数据源代码:

DataSourceBooleanField checkField=新的DataSourceBooleanField(“已检查”)

列表网格代码:

addRecordClickHandler(新的RecordClickHandler(){


Smartgwt现在对我来说有点遥远,但如果我不理解,您可以使用
listGrid.setSelectionAppearance(SelectionAppearance.CHECKBOX);
说“嘿,我想通过选中一个专用复选框来指示我选择的记录”否?那么为什么想知道您选中的复选框是否已选中?但也许我误解了您的意思…嗨…谢谢您的回复…因为我也可以取消选中记录,不幸的是,对于检查和取消选中事件,侦听器是相同的,我需要检索正确的检查值来执行任务,而不是其他。最后,我使用了一个vector保存选中的记录并与新选择进行比较…使用getSelectedRecords()我获得一个包含所有选中或仅选中记录的数组,此解决方案是不推荐的,因为每次单击我都必须执行for/while,以了解我的记录是被选中还是未选中。。。
@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");