Получение выбранных значений из мультиселекта Jquery в asp.net - PullRequest
2 голосов
/ 28 сентября 2011

Посмотрел и нашел решения с неработающими ссылками или которые не работали для меня, в которых говорилось, что я использую множественный выбор, найденный здесь http://abeautifulsite.net/blog/2008/04/jquery-multiselect/ Мне нужно получить выбранные флажки, когда я нажимаю кнопку, чтобы использовать их в c # Я полностью застрял на этом, и пример, используемый в демо, который делает это в php: - (

JQuery:

  $(document).ready(function () {
        $("#EGM").multiSelect({ selectAll: false, oneOrMoreSelected: '*' });
    });

Контроль:

 <select id="EGM" multiple="multiple" style="width: 100px;">
        <optgroup label="EGM">
         <option>data</option>           
        <option>driven</option>           
        <option>dropdown</option>      
        </optgroup>
        <optgroup  label="System Type">SystemType
         <option>data</option>          
         <option>driven</option>           
         <option>dropdown</option>          
         </optgroup>            
         </select>

Где мне нужно мои выбранные значения в коде позади:

  protected void SubmitButton_Click(object sender, EventArgs e)
{

     //what goes here?!?

}

1 Ответ

2 голосов
/ 28 сентября 2011

Правильный способ сделать это - изменить <select ...> на <asp:ListBox ...> и обновить скрипт до

$(document).ready(function() {
    $('#<%=this.EGM.ClientID%>').multiSelect(...);
});

Но элемент управления <asp:ListBox> изначально не поддерживает внутренние элементы optgroup,Существуют обходные пути с использованием ControlAdapters (см. Элемент управления Dropdownlist с s для asp.net (веб-формы)? - VB.NET).Используя это, вы можете получить прямой доступ к ListItems.

Тем не менее, менее правильный, но менее трудоемкий способ, вы также можете просто сбросить $('#EGM').val() в <asp:HiddenField>, указав метод обратного вызова в инициализаторе multiSelect.и перечислить массив в коде позади.

...