C#/ ASP.NET中的DataBinding DropDownList

时间:2011-08-15 22:10:30

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

我有一个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. 如何在屏幕上显示之前对填充数据字段进行字符串替换?

1 个答案:

答案 0 :(得分:6)

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

<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事件的方法,您应该有权在绑定之前编辑信息。