Получение выбранных значений из мультиселектора JQuery в asp.net

Посмотрел и нашел решения с неработающими ссылками или которые у меня не работали, в которых говорилось, что я использую множественный выбор, найденный здесь http://abeautifulsite.net/blog/2008/04/jquery-multiselect/ Мне нужно получить выбранные флажки, когда я нажимаю кнопку, чтобы использовать их в C #, я полностью застрял на этом one, а пример, использованный в демонстрации, находится на 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?!?

}

person Contristo    schedule 28.09.2011    source источник
comment
Вы сказали «контроль». Это HTML - это HTML-код, созданный элементом управления, или вы его написали вручную?   -  person Joshua H    schedule 28.09.2011
comment
есть еще одна ветка с тем же вопросом stackoverflow.com/questions/2700010/   -  person Agamand The True    schedule 28.09.2011
comment
@AgamandTheTrue, как я уже упоминал, я проверил это здесь, если вы перейдете по своей ссылке и увидите выбранный ответ, вы увидите, что предоставленная ссылка не работает, как указано в 1-м предложении моего вопроса. Я действительно пытаюсь найти, прежде чем публиковать.   -  person Contristo    schedule 28.09.2011


Ответы (1)


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

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

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

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

person lukiffer    schedule 28.09.2011
comment
Группа opt не нужна, я бы ее разделил на две части. Я попробую это завтра, и если это сработает, я помечу его как принятый. Спасибо! - person Contristo; 28.09.2011
comment
нет кубика на этом :-( Я предполагаю, что множественный выбор работает только с выбранным элементом. - person Contristo; 28.09.2011
comment
Буквально 5 минут назад просто закинул в скрытое поле, спасибо! - person Contristo; 29.09.2011