Как я могу создать выпадающий список в Wicket? - PullRequest
0 голосов
/ 07 ноября 2010

Я пытаюсь заполнить элементы в раскрывающемся списке.

Я получил значения из своей базы данных, но не могу добавить их в раскрывающийся список.

public List<String> getNames(){
        List<String> polNames = new LinkedList<String>();
                try {
            String query ="SELECT names FROM clinics";
            Statement statement = this.connection.createStatement();
            ResultSet result = statement.executeQuery(query);
            while(result.next()){
                polNames.add(result.getString("name"));
            }
        }
        catch(SQLException ex){
            throw new UnsupportedOperationException(ex.getMessage());
        }
        return polNames;
    }

Выше я присвоил значения polNames. Я хочу, чтобы polNames было добавлено в выпадающий список.

Кроме того, при нажатии значения из списка я хочу сделать новый запрос. Как мне этого добиться?

1 Ответ

1 голос
/ 07 ноября 2010

Для создания списка вы можете использовать класс DropDownChoice . Вот пример того, как это может выглядеть:

DropDownChoice<String> clinicNames =
    new DropDownChoice<String>("clinicNames",
                               new PropertyModel<String>(this, "selectedName"),
                               polNames) {
        // @Override
        // public void onSelectionChanged() {
        //     // Generate and submit your query here
        // }
    };

// EDIT: onSelectionChanged() is a final method; use this instead
OnChangeAjaxBehavior clinicNamesListener = new OnChangeAjaxBehavior() {
    protected void onUpdate(AjaxRequestTarget target) {
        // Generate and submit your query here
    }
};
clinicNames.add(clinicNamesListener);

Это создаст новый раскрывающийся список с идентификатором Wicket «clinicNames», заполненный значениями в polNames, который обновит значение selectedName в вашем коде.

...