【问题标题】:Adding an element to a drop down list which is binded to a database initially将元素添加到最初绑定到数据库的下拉列表中
【发布时间】:2013-11-15 04:38:31
【问题描述】:

我正在使用 Microsoft Visual Studio 中的 C# 在 ASP.net 中进行编码。我有一个下拉列表,我使用 Default.aspx 页面上“选择数据源”下的智能标记绑定。

我已将其绑定到 ACCESS 数据库。它目前有以下数据:2009、2010、2011、2012、2013。我想找到一种方法以编程方式在数据项 2009 之前插入一个单词作为“选择”。所以数据项如下:Select,2009,2010,2011,2012,2013。

每当我这样做时DropDownList1.Items.Add(new ListItem("Please Select", "1")); 每次用户从下拉列表中选择一个项目时,它都会不断添加“请选择”关键字。 我不希望这种情况发生。

提前致谢

【问题讨论】:

    标签: c# asp.net sql visual-studio-2012 html-select


    【解决方案1】:

    page_load 上使用!IsPostback 添加元素以解决此问题,如下所示

      if (!Page.IsPostBack)
      {
          DropDownList1.Items.Add(new ListItem("Please Select", "1"));
      }
    

    <asp:DropDownList ID="DropDownList1" AppendDataBoundItems="true" runat="server"
         DataSourceID="SqlDataSource1" DataTextField="state" DataValueField="state">
           <asp:ListItem Text="(Select a State)" Value="" />
    </asp:DropDownList>
    

    【讨论】:

    • 我不认为我可以使用它,因为只要从下拉列表中的项目被选中,它会运行一个SQL查询并加载图表。我的意思是 IsPostBack 工作正常,但它不会将新项目添加到列表中。
    • 您可以在下拉列表中使用初始值,然后使用AppendDataBoundItems="true"
    【解决方案2】:
    if (!Page.IsPostBack)
      {
                DropDownList1.Items.Insert(0, "Please Select");
      }
    

    并设置 AppendDataBoundItems="true"

    <asp:DropDownList ID="DropDownList1" AppendDataBoundItems="true" runat="server"
         DataSourceID="SqlDataSource1" DataTextField="state" DataValueField="state">
    </asp:DropDownList>
    

    【讨论】:

      猜你喜欢
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 1970-01-01
      • 2013-01-29
      • 2021-12-31
      • 2010-10-31
      • 1970-01-01
      相关资源
      最近更新 更多