я написал ниже код в celltable конструкторCelltable onBrowserEvent не вызывался
public ViewSubscriptionsCellTable(CellTableResource resource, final WidgetListener clickListener) {
super(15, resource);
this.resource = resource;
setStyleName(CSS.LISTDATATABLE);
setPageStart(0);
expandedRows = new HashSet<String>();
selectionModel = new SingleSelectionModel<ViewSubscriptionsWrapper>();
setSelectionModel(selectionModel);
selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler(){
@Override
public void onSelectionChange(SelectionChangeEvent event) {
Window.alert("clicked");
}
});
List<ViewSubscriptionsWrapper> viewSubscriptionsWrapperList = new ArrayList<ViewSubscriptionsWrapper>();
setTableBuilder(new CustomTableBuilder());
createColumns(clickListener);
listDataProvider = new ListDataProvider<ViewSubscriptionsWrapper>(new ArrayList<ViewSubscriptionsWrapper>());
listDataProvider.addDataDisplay(ViewSubscriptionsCellTable.this);
createSortHandler();
pager = new PagerWidget(TextLocation.CENTER);
pager.setStyleName(CSS.WIDGET_TEXT_FONT);
pager.setDisplay(ViewSubscriptionsCellTable.this);
this.setColumnWidth(radioColumn, 5.0, Unit.PCT);
this.setColumnWidth(msisdnColumn, 5.0, Unit.PCT);
this.setColumnWidth(subscriptionColumn, 10.0, Unit.PCT);
this.setColumnWidth(simTypeColumn, 10.0, Unit.PCT);
this.setColumnWidth(simNumberColumn, 70.0, Unit.PCT);
}
Ниже метод вызывается при выборе ячейки пользовательских радио
@Override
public void onBrowserEvent(Context context, Element elem, ViewSubscriptionsWrapper object, NativeEvent event) {
super.onBrowserEvent(context, elem, object, event);
clickListener.onWidgetEvent(new WidgetEvent(object, context.getIndex()));
}
После удаление Window.alert больше не работает, и onBrowserEvent ячейки не получает вызов. Я попытался удалить addSelectionChangeHandler, и все еще проблема есть.
Примечание: Вышеупомянутая идея работает без этого addSelectionChangeHandler, если вы перемещаетесь между строками , используя клавиши, а затем нажмите клавишу ввода. Вместо этого я хотел, чтобы он работал только с кликом и без нажатия клавиш.
как огнь фиктивного события браузера, то что поможет уволить onBrowserEvent или любое другое решение? – sujikin
Я не понимаю, что вы пробовали, но если переключатель для вашего выбора записи, вы должны использовать 'CheckboxCell' вместо радио и использовать' createCheckboxManager'. Другой мудрый огонь. Событие Dom просто пример http://stackoverflow.com/questions/16542266/handler-on-dom-elements-in-gwt/16542675#16542675 – iMBMT
Кнопка радио используется, поскольку одновременно может быть выбрана только одна запись. Позвольте мне проверить эту ссылку. – sujikin