【问题标题】:DataBinding DropDownList in C#/ASP.NETC#/ASP.NET 中的数据绑定下拉列表
【发布时间】:2011-10-27 15:16:24
【问题描述】:

我有一个 search.aspx 页面,其中包含:

  <asp:DropDownList id="ddlPopulation" runat="server" DataTextField="population" DataValueField="pid">
                </asp:DropDownList>

然后我在 page_load 上有一个数据绑定:

 StringBuilder sql = new StringBuilder();

    // Define sql
    sql.Append("SELECT pid, population ");
    sql.Append("FROM populations ");
    sql.Append("ORDER BY pid ASC ");

   IDataReader reader = SqlHelper.GetDataReader(sql.ToString());

    ddlPopulation.DataSource = reader;
    ddlPopulation.DataBind();

我该怎么做:

  1. 将默认值/文本对添加到不在数据库中的列表中,例如所有人群?
  2. 如何在人口数据字段显示在屏幕上之前对其进行字符串替换?

【问题讨论】:

    标签: c# asp.net forms pass-by-value


    【解决方案1】:

    将您的列表项添加到下拉列表中。

    <asp:DropDownList id="ddlPopulation" runat="server" DataTextField="population" DataValueField="pid" AppendDataBoundItems="True">
        <asp:ListItem>Default</asp:ListItem>
    </asp:DropDownList>
    

    AppendDataBoundItems 将强制将数据项附加到已经存在的列表中。因此,您的默认项目将保留。

    至于进行文本替换,您可以在 SQL 中进行,或者使用 DataSets/DataViews 而不是直接的 SQL,或者将其绑定到您自己的对象列表中,您可以在其中做任何您想做的事情,或者创建下拉列表的 ItemDataBound 事件上的一个方法,您应该有权在绑定之前编辑信息。

    【讨论】:

    • 感谢第一个.. 现在我该怎么做第二个?
    • 我想做“绑定到我自己的对象列表”
    • @chris: 覆盖 OnItemDataBound
    • 我在下拉列表中没有看到onitemdatabound,只有ondatabound
    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多