如何使用C#绑定.aspx中定义的现有下拉列表

时间:2015-01-01 09:42:54

标签: c# asp.net .net drop-down-menu c#-3.0

我在设计页面中有一个下拉列表,如下所示:

<asp:DropDownList ID="ddlArtList" runat="server">
  <asp:ListItem Value="95">Select</asp:ListItem>
  <asp:ListItem Value="1">1</asp:ListItem>
  <asp:ListItem Value="2">2</asp:ListItem>
  <asp:ListItem Value="3">3</asp:ListItem>
  <asp:ListItem Value="4">4</asp:ListItem>
  <asp:ListItem Value="5">5</asp:ListItem>
  <asp:ListItem Value="6">6</asp:ListItem>
</asp:DropDownList>

根据要求,上述项目有时会被C#中的其他一些值覆盖。 但最后我想在C#的帮助下绑定上述默认项目以获得上述列表项。

我想知道是否有任何内置方法或属性来绑定C#中的下拉列表(.aspx)。

不使用此:ddlArtList.Items.Add(&#34; 1);等等。

提前致谢。

3 个答案:

答案 0 :(得分:2)

使用AppendDataBoundItems

.aspx代码

<asp:DropDownList ID="ddlArtList" AppendDataBoundItems="True" runat="server">
  <asp:ListItem Value="95">Select</asp:ListItem>
  <asp:ListItem Value="1">1</asp:ListItem>
  <asp:ListItem Value="2">2</asp:ListItem>
  <asp:ListItem Value="3">3</asp:ListItem>
  <asp:ListItem Value="4">4</asp:ListItem>
  <asp:ListItem Value="5">5</asp:ListItem>
  <asp:ListItem Value="6">6</asp:ListItem>
</asp:DropDownList>

<强>服务器侧

ddlArtList.AppendDataBoundItems="True"

答案 1 :(得分:2)

您可以在第一次页面加载期间保留默认列表 -

if(!isPostback)
{
    ListItem[] items = new ListItem[ddlArtList.Items.Count];
    ddlArtList.Items.CopyTo(items, 0);
    Session["ddlArtList"] = items;
}

现在,当您想重置列表时 -

if(Session["ddlArtList"] != null)
{
    ListItem[] items = Session["ddlArtList"] as ListItem[];
    ddlArtList.Items.Clear();
    ddlArtList.Items.AddRange(items);
}

答案 2 :(得分:0)

如果要附加到默认列表,请使用您提供的标记来设置默认列表。如前所述,您需要将AppendDataBoundItems设置为true。

<asp:DropDownList ID="ddlArtList" runat="server" AppendDataBoundItems="true">
    <asp:ListItem Value="95">Select</asp:ListItem>
    <asp:ListItem Value="1">1</asp:ListItem>
    <asp:ListItem Value="2">2</asp:ListItem>
    <asp:ListItem Value="3">3</asp:ListItem>
    <asp:ListItem Value="4">4</asp:ListItem>
    <asp:ListItem Value="5">5</asp:ListItem>
    <asp:ListItem Value="6">6</asp:ListItem>
 </asp:DropDownList>

在代码隐藏中,您可以将DataSource设置为附加项,只需调用DataBind即可。这会将这些项目附加到您的下拉列表中。

ddlArtList.DataSource = new List<int>{ 10, 11, 12 }; // replace with actual data source you are using
ddlArtList.DataBind();

根据您的所有需求,您可以在页面的加载事件或其他事件处理程序中添加这些附加项目,例如按钮单击或从其他下拉列表中选择或其他任何内容。