Java Sencha gxt,在组合框中设置值
我试图在组合框中设置值,但它对我无效。我试着这样做:Java Sencha gxt,在组合框中设置值,java,extjs,combobox,gxt,Java,Extjs,Combobox,Gxt,我试图在组合框中设置值,但它对我无效。我试着这样做: sortingStore = new ListStore<String>(modelKeyProvider); sortingStore.add("Value 1"); sortingStore.add("Value 2"); ComboBox<String> combobox2 = new ComboBox<String>(sortingStore,
sortingStore = new ListStore<String>(modelKeyProvider);
sortingStore.add("Value 1");
sortingStore.add("Value 2");
ComboBox<String> combobox2 = new ComboBox<String>(sortingStore,
new LabelProvider<String>() {
@Override
public String getLabel(String item) {
return item;
}
});
combobox2.addSelectionHandler(new SelectionHandler<String>() {
@Override
public void onSelection(SelectionEvent<String> event) {
ComboBox<String> combo = (ComboBox<String>) event.getSource();
combo.setValue("Other Value");
}
});
在我更改组合框中的值之后,什么都没有发生。有人知道为什么吗?
我正在使用sencha gxt 3.0使用comboBox.addValueChangeHandler。。。相反,我错了。它只适用于组合框,我的组合框位于网格的单元格中。我尝试设置combobox的值,方法与通常相同,但在网格中combobox不起作用:/ 这是全部代码
typeStore = new ListStore<String>(modelKeyProvider);
typeStore.add("Category");
typeStore.add("Source");
typeStore.add("Author");
typeStore.add("Publication");
sortingStore = new ListStore<String>(modelKeyProvider);
sortingStore.add("Ascending");
sortingStore.add("Descending");
ContentPanel panel = new ContentPanel();
panel.setHeadingText("Categories sorting");
panel.setBodyStyle("background-color: #E7EEF9");
final ColumnConfig<GridElement, String> cc1 = new ColumnConfig<GridElement, String>(
properties.groupType(), 150, "GroupType");
ColumnConfig<GridElement, String> cc2 = new ColumnConfig<GridElement, String>(
properties.sorting(), 150, "Sorting");
List<ColumnConfig<GridElement, ?>> list = new ArrayList<ColumnConfig<GridElement, ?>>();
list.add(cc1);
list.add(cc2);
ColumnModel<GridElement> columnModel = new ColumnModel<GridElement>(
list);
Grid<GridElement> grid = new Grid<GridElement>(
(ListStore<GridElement>) mainStore, columnModel);
final GridInlineEditing<GridElement> editing = new GridInlineEditing<GridElement>(
grid);
ComboBox<String> combobox1 = new ComboBox<String>(typeStore,
new LabelProvider<String>() {
@Override
public String getLabel(String item) {
return item;
}
});
combobox1.setTriggerAction(TriggerAction.ALL);
combobox1.setEditable(false);
editing.addEditor(cc1, combobox1);
final ComboBox<String> combobox2 = new ComboBox<String>(sortingStore,
new LabelProvider<String>() {
@Override
public String getLabel(String item) {
return item;
}
});
combobox2.setTriggerAction(TriggerAction.ALL);
combobox2.setEditable(false);
combobox2.setAutoValidate(true);
editing.addEditor(cc2, combobox2);
editing.setClicksToEdit(ClicksToEdit.TWO);
editing.addCompleteEditHandler(new CompleteEditHandler<GridElement>() {
@Override
public void onCompleteEdit(CompleteEditEvent<GridElement> event) {
int col = event.getEditCell().getCol();
int row = event.getEditCell().getRow();
String value = (String) ((ComboBox<Object>) editing
.getEditor(event.getSource().getEditableGrid()
.getColumnModel().getColumn(col))).getValue();
if (col == 0) {
mainStore.get(row).setGroupType(value);
} else {
mainStore.get(row).setSorting(value);
}
if(mainStore.get(row).getGroupType().equals(i18n.ordering_category())) {
mainStore.get(row).setSorting("Custom");
((ComboBox<Object>) editing
.getEditor(event.getSource().getEditableGrid()
.getColumnModel().getColumn(col))).setValue("Custom");
}
}
});
grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
grid.setWidth(302);
grid.setHeight(300);
grid.setBorders(true);
VerticalLayoutContainer vLayout = new VerticalLayoutContainer();
vLayout.add(createToolbar(grid, editing),
new VerticalLayoutData(-1, 27));
CenterLayoutContainer cLayout = new CenterLayoutContainer();
cLayout.add(grid);
vLayout.add(cLayout, new VerticalLayoutData(1, 1));
panel.add(vLayout);
我做错了什么?你想做什么?您正在尝试设置默认值吗?您可以使用event.getSelectedItem访问所选值。请看我下面的帖子。虽然此代码块可能会回答这个问题,但如果您能解释一下它为什么会这样做,这将是一个更好的答案。我通过在商店中删除并再次添加该项来修复它