1

null Ajax update を返す DropDownChoice があり、モデルは List として渡されます。コードは次のとおりです。

もちろん、私の意図は onUpdate であり、現在選択されているグループを取得します。

        final List<GbGroup> groups = this.businessService.getSiteSectionsAndGroups();

        toolbar.add(new EmptyPanel("groupFilterOnlyOne").setVisible(false));

        // add the default ALL group to the list
        String allGroupsTitle = getString("groups.all");

        groups.add(0, new GbGroup(null, allGroupsTitle, null, GbGroup.Type.ALL));

        final DropDownChoice<GbGroup> groupFilter = new DropDownChoice<GbGroup>("groupFilter", new Model<GbGroup>(),
                groups, new ChoiceRenderer<GbGroup>() {
            private static final long serialVersionUID = 1L;

            @Override
            public Object getDisplayValue(final GbGroup g) {
                return g.getTitle();
            }

            @Override
            public String getIdValue(final GbGroup g, final int index) {
                return g.getId();
            }

        });

        groupFilter.add(new AjaxFormComponentUpdatingBehavior("onchange") {
            @Override
            protected void onUpdate(final AjaxRequestTarget target) {

                final GbGroup selected = (GbGroup) groupFilter.getDefaultModelObject();

                // store selected group (null ok)
                final GradebookUiSettings settings = g_Page.getUiSettings();
                settings.setGroupFilter(selected);
                g_Page.setUiSettings(settings);

            }
        });
4

0 に答える 0