在TextItem上显示值的标准

时间:2011-06-15 08:21:37

标签: smartgwt

当我从下拉列表中选择值时,应该更新其他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中,但不显示。

请告诉我哪里错了?

1 个答案:

答案 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"));
                }
            });