当我从下拉列表中选择值时,应该更新其他textitem。 以下是代码:
SelectItem courseItem = new SelectItem ("course.id", "Course");
courseItem.setOptionDataSource(CoursesDS.getInstance());
courseItem.setDisplayField("course.title");
courseItem.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
c.addCriteria("course.id", (Integer)event.getValue());
CourseDS.getInstance().fetchData(c);
}
});
TextItem courseNameItem = new TextItem("course.title", "Course Name");
courseNameItem.setShowDisabled(false);
如果我使用selectitem中的条件传递课程ID,则课程名称应自动显示在textitem中,但不显示。
请告诉我哪里错了?
答案 0 :(得分:0)
您不必传递课程ID并再次进行获取。而在课程中,选择使用getSelectedRecord方法,而不是选择项目。每当更改选择项目时,getSelectedRecord方法将具有相应的课程记录。从选定的记录中获取课程名称并将其设置为文本项
final TextItem courseNameItem = new TextItem("course.title", "Course Name");
courseNameItem.setShowDisabled(false);
SelectItem courseItem = new SelectItem ("course.id", "Course");
courseItem.setOptionDataSource(CoursesDS.getInstance());
courseItem.setDisplayField("course.title");
//Use changed handler
courseItem.addChangedHandler(new ChangedHandler() {
@Override
public void onChanged(ChangedEvent event) {
courseNameItem.setValue(courseItem.getSelectedRecord().getAttributeAsString("course.title"));
}
});