C#/ ASP.NET中的DataBinding DropDownList

cdu*_*dub 1 c# forms asp.net pass-by-value

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

  <asp:DropDownList id="ddlPopulation" runat="server" DataTextField="population" DataValueField="pid">
                </asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

然后我在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();
Run Code Online (Sandbox Code Playgroud)

我如何能:

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

Rex*_*gan 6

将列表项添加到下拉列表中.

<asp:DropDownList id="ddlPopulation" runat="server" DataTextField="population" DataValueField="pid" AppendDataBoundItems="True">
    <asp:ListItem>Default</asp:ListItem>
</asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

AppendDataBoundItems将强制将数据项追加到已存在的列表中.所以你的默认项目将保留.

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