绑定到对象数据源的下拉列表 - 如何在按钮单击时更新

时间:2010-06-03 04:04:38

标签: c# asp.net-3.5

这可能是非常简单的事情。

我有一个绑定到对象数据源的下拉列表。我已将AppendDataBoundItems设置为true,以便我可以进行初始选择。

<asp:DropDownList ID="Accommodations1" runat="server" AutoPostBack="true" DataTextField="AccommodationTypeDescription" DataValueField="Id" OnDataBound="Accommodations1_DataBound" onSelectedIndexChanged="Accommodations1_SelectedIndexChanged" Width="200px" DataSourceID="AccommodationDs" AppendDataBoundItems="true">
       <asp:ListItem Text="Select" Value=""></asp:ListItem>
</asp:DropDownList>

<asp:ObjectDataSource ID="AccommodationDs" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="ListByPropertyId" TypeName="PropertyAccommodationController">
      <SelectParameters>
           <asp:Parameter Name="PropertyId" Type="Int32" />
      </SelectParameters>
</asp:ObjectDataSource>

我有一个添加了一个容纳的按钮 - 所以在那之后我需要更新下拉列表以包含新的住宿。所以我尝试在下拉列表中调用databind,并在数据源上调用databind - 没有任何东西使这个下拉列表更新。

例如。 PropertyAccommodations1.DataBind();

有人可以让我知道我做错了什么。最初我认为这是由于更新面板问题..但我删除了更新面板,它仍然无法工作(并检查主页面不包括更新面板)。

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以subrcibe到DDL OnDataBound并添加“选择”项

Accommodations1.Items.Add(new ListItem("Select",""));

答案 1 :(得分:1)

在按钮单击中,在DDL上调用.DataBind()之后,您可以执行

Accommodations1.Items.Add(new ListItem("Select"));

答案 2 :(得分:1)

感谢您快速回复 - 已实施

Accommodations1.Items.Insert(0,new ListItem("Select","")); 

因为我特别希望它在顶部:)

我仍然认为在页面源中有这个默认项目会更简洁 - 但是AppendDataItems正在绊倒我。