Smartgwt: Как получить значение флажка на сетке списка?
У меня есть прослушиватель на 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 ответа
Я нашел простое решение...
Моя задача решается с помощью специального логического поля в источнике данных с именем, например, "проверено". В ListGrid у меня есть поле "проверено", а с помощью RecordClickHandler я могу управлять проверкой или снятием отметки с события.
Код источника данных:
DataSourceBooleanField checkField = new DataSourceBooleanField ("проверено");
Код 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");
Может быть, метод getSelectedRecords() поможет вам!
Вот ссылка на API: http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/grid/ListGrid.html
Определенно, это обеспечит все выбранные записи (используя флажок), но должны быть некоторые значения, которые вы могли бы использовать для уникальной идентификации каждой записи!