【发布时间】:2010-10-08 01:10:32
【问题描述】:
我需要创建一组DropDownLists 来显示和允许更改项目的属性组。
我的 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。
如何根据Repeater的源数据设置每个创建的DropDownList的选择值?
例如,假设我们有A、B 和C 的可能属性值。
如果Repeater 的数据库输出包含其中两个值A 和B,则Repeater 输出两个DropDownLists,这三个值都可用,第一个值选择A值和第二个以B 作为选定值。
编辑:
在我的情况下,似乎将OnItemDataBound="repeater_ItemDataBound" 添加到Repeater 并在其中选择适当的值并不是可行的方法。这是因为我还需要将可能更改的值保存到数据库中。
Repeater 的 ItemDataBound 事件在 Button 上的 OnClick 事件之前触发,并在保存新选择之前将所选值更改为其旧值。
关于如何解决这个问题的任何建议?
当前代码:
<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 使用 Bryan Parker 建议的方法来选择合适的值。
【问题讨论】:
标签: c# asp.net data-binding drop-down-menu repeater