Мне нужно создать группу из DropDownList
s, чтобы показать и разрешить изменение группы свойств для элемента.
На моей странице ASP есть следующий код.
<asp:Repeater runat="server" ID="repeaterProperties">
<ItemTemplate>
<p><asp:DropDownList runat="server" ID="ddProperty" OnInit="ddProperty_OnInit" /><p>
</ItemTemplate>
</asp:Repeater>
ddProperty_OnInit
заполняет DropDownList
всеми возможными значениями с помощью запроса к базе данных.
Как я могу установить выбранное значение каждого созданного DropDownList
в соответствии с исходными данными Repeater
?
Скажем, например, что у нас есть возможные значения свойств A
, B
и C
.
Если выходные данные базы данных для Repeater
содержат два из этих значений, A
и B
, Repeater
выводит два DropDownList
s, оба со всеми доступными 3 значениями и первое с A
в качестве выбранного значение и второе с B
в качестве выбранного значения.
Edit:
Кажется, что добавление OnItemDataBound="repeater_ItemDataBound"
к Repeater
и выбор подходящего значения в моем случае не подходит. Это потому, что мне также нужно сохранить возможно измененные значения в базе данных.
Событие ItemDataBound
в Repeater
вызывается перед событием OnClick
в Button
и заменяет выбранные значения на их старые значения, прежде чем новые выборы могут быть сохранены.
Любое предложение о том, как обойти это?
Текущий код:
<asp:Repeater runat="server" ID="repeaterJako" OnItemDataBound="repeater_ItemDataBound">
<ItemTemplate>
<asp:DropDownList id="ddJako" runat="server" OnInit="ddJako_OnInit">
</asp:DropDownList><br />
</ItemTemplate>
</asp:Repeater>
<asp:Button runat="server" id="updateButton" Text="Save" OnClick="update_OnClick" />
В выделенном фрагменте кода ddJako_OnInit
заполняет раскрывающийся список всеми возможными вариантами выбора, а repeater_ItemDataBound
использует метод, предложенный Брайаном Паркером, для выбора правильного значения.