У меня была похожая проблема, и я так и решил. Прежде чем продолжить, я нашел все виды методов повторного разбиения для списков, которые, вероятно, работают. Однако я не думаю, что это лучший путь для моего решения. Вот что я сделал:
Мне также нужно было узнать, какой вариант пользователь выбрал в раскрывающемся списке, но обнаружил, что нельзя создать раскрывающийся список с группами параметров в ASP.net. Поэтому для этого я просто создал простые <select>
с <optgroup>
и <option>
в каждой группе. Затем я поместил <div>
со скрытым текстовым полем, в котором был установлен runat="server"
. Я установил событие "onchange"
для выбора, чтобы изменить текстовое значение скрытого текстового поля на любое значение параметра, которое было выбрано пользователем с использованием javascript. Затем, когда произошла обратная запись, код имел доступ к значению, выбранному пользователем, через скрытое текстовое поле runat="server"
. Задача решена! Код выглядит примерно так:
Код в HTML (aspx):
<div id="selectDiv">
<select id="selectItems" onchange="document.getElementById('hiddenselectDiv').getElementsByTagName('input')[0].value = this.options[this.selectedIndex].value;">
<optgroup label="Johannesburg">
<option value="Wilropark">Wilropark</option>
<option value="Bryanpark">Bryanpark</option>
<option value="Hurlingham">Hurlingham</option>
<option value="Midrand ">Midrand </option>
<option value="Glenvista">Glenvista</option>
<option value="Sunninghill">Sunninghill</option>
<option value="Edenvale ">Edenvale </option>
<option value="Parkhurst">Parkhurst</option>
</optgroup>
<optgroup label="Cape Town">
<option value="Tokai">Tokai</option>
<option value="Durbanville">Durbanville</option>
</optgroup>
<optgroup label="Durban">
<option value="Musgrave">Musgrave</option>
</optgroup>
<optgroup label="Pretoria">
<option value="Hatfield">Hatfield</option>
</optgroup>
</select>
</div>
<div id="hiddenSelectDiv">
<!--
Note: You probably want to set the hidden value to the first item you have seleced when you build the <select> object.
-->
<input type="hidden" id="selectedItem" value="Wilropark">
</div>
В коде (C #):
if (!string.IsNullOrEmpty(selectedItem.Value))
{
//validation or whatever you want....
}