页脚模板下拉列表

本文关键字:下拉列表 | 更新日期: 2023-09-27 18:18:57

我需要添加到DropDownList的开始DDL一行空:

<asp:ListItem Text="------" Value=""></asp:ListItem>

我试过这两种不同的方法,但都没有成功。

这是我的代码。

解决方案# 1

<FooterTemplate>
 <asp:DropDownList ID="DDL" runat="server" Font-Bold="true" Font-Size="X-Small">
    <asp:ListItem Text="------" Value=""></asp:ListItem>
  </asp:DropDownList>
</FooterTemplate>

解决方案# 2

if (e.Row.RowType == DataControlRowType.Footer)
{
    DropDownList DDL = (DropDownList)e.Row.FindControl("DDL");
    sql = " SELECT DISTINCT FROM .....; ";
    OdbcCommand cmd = new OdbcCommand(sql);
    DDL.DataSource = GetData(cmd);
    DDL.DataTextField = "combo";
    DDL.DataValueField = "combo";
    DDL.DataBind();
    DDL.Items.Add(new ListItem("------", ""));
}

页脚模板下拉列表

您可以将AppendDataBoundItems -属性设置为true:

<asp:DropDownList ID="DDL" runat="server" AppendDataBoundItems="true"  Font-Bold="true" Font-Size="X-Small">
   <asp:ListItem Text="------" Value=""></asp:ListItem>
</asp:DropDownList>

它以声明方式(如上所述)或编程方式工作:

DropDownList DDL = (DropDownList)e.Row.FindControl("DDL");
DDL.Items.Add(new ListItem("------", ""));
sql = " SELECT DISTINCT FROM .....; ";
OdbcCommand cmd = new OdbcCommand(sql);
DDL.DataSource = GetData(cmd);
DDL.DataTextField = "combo";
DDL.DataValueField = "combo";
DDL.DataBind();

当你试图使一个数据源dropbox,所以它的防止任何添加,因为在默认情况下添加是禁用....把这个标签放到你的下拉元素中:

<asp:DropDownList AppendDataBoundItems="true" .... >

这意味着下拉菜单会将你静态添加的元素添加到你的数据源

所以现在我猜你提到的两个解决方案是可行的

但是如果你想把它写在后面的代码中,记得这样写:

dropdown.DataBind(); 

这里提供的其他答案的替代方法与您第二次尝试的方法相同。用Insert()法代替Add()法。只需在绑定后将另一项插入列表,并为其指定索引。在你的情况下,0.

DDL.Items.Insert(0, new ListItem("------"));