页脚模板下拉列表
本文关键字:下拉列表 | 更新日期: 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("------"));