Получение значения из множественного выбора в LIstbox ZK - PullRequest
1 голос
/ 15 июня 2011

Я хочу спросить о получении значения из множественного выбора в Listbox, у меня есть код в Zul, как это:

<n:tr>
                <n:td>
                    <label value="Privilege"/>
                </n:td>
                <n:td>
                    <label value=""/>
                </n:td>
                <n:td>
                     <listbox id="designations" model="@{addUser$composer.lstPrivilege}" selectedItem="@{selectedUserAcc, converter=com.nsia.doku.escrow.converter.SelectedItemConverter}" multiple="true" checkmark="true" width="200px">
                                <listitem self="@{each=lstPrivilege}" >
                                    <listcell label="@{lstPrivilege.description}"/>
                                </listitem>
                     </listbox>
                </n:td>
            </n:tr>
            <n:tr>
                <n:td>

                </n:td>
                <n:td>

                </n:td>
                <n:td>
                     <button label="Submit" onClick='
                     import com.dokuescrow.dto.Activity;
                     ArrayList al = new ArrayList();
                        for (Activity li : selectedUserAcc)
                        {
                            al.add(li.activityId);
                        }
                        alert(al);
                     '/>
                </n:td>
            </n:tr>

Моя проблема в том, как мне получить выбранное значение в моем классе контроллера, я тестирую на своей кнопке, используя onClick='.., значение selectedUserAcc не равно нулю и, как я хочу, если я передаю действие в моем классе контроллера ( например, используя метод), значение, которое я распечатываю, равно нулю. Кто-нибудь хочет мне помочь, что не так с моим классом?

мой метод в контроллере такой:

public void onClick$submit(Event event){
        try {

            ArrayList al = new ArrayList();
                        for (Activity li : selectedUserAcc)
                        {
                            al.add(li.getActivityId());
                        }
           alert(al.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

надеюсь, кто-нибудь может мне помочь .. спасибо ..: D

1 Ответ

2 голосов
/ 17 июня 2011

ОК, после поиска в Google, поиска и попытки (: D), я получил ответ на этот вопрос, что вы должны сделать, это вызвать конвертер в вашем контроллере, конвертер, который я получил с форума ZK здесь и измените return на object (бот вернет null), моя prgram будет такой:

 SelectedItemConverter select=new SelectedItemConverter();

       for (Activity li : (Set<Activity>)select.coerceToBean(selectedUserAcc, getListGent()))
                        {
                            al.add(li);
                        }


                        List<Activity> act=al;

так что я получил выбранный объект, который я хочу .. спасибо за внимание ..: D

litGen это мой идентификатор lisbox

...