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

私は簡単な解決策を見つけました...

私のタスクは、たとえば「checked」という名前の DataSource の特別なブール値フィールドを使用して解決されます。ListGrid では「checked」フィールドがあり、RecordClickHandler を使用してチェックまたはチェック解除イベントを管理できます。

データソース コード:

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");
于 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 に答える