C# 加载页面上的ASP下拉列表
我想使用Aspx创建一个下拉列表,它将列出数据源中包含的所有项目,但它还有一个额外的默认值“selected” 在aspx文件中,我有:C# 加载页面上的ASP下拉列表,c#,asp.net,C#,Asp.net,我想使用Aspx创建一个下拉列表,它将列出数据源中包含的所有项目,但它还有一个额外的默认值“selected” 在aspx文件中,我有: <aspx:DropDownList ID="ddl1" runat="server"/> 让我们假设LocationofData将填充值“a、b、c等…”。我希望默认值为“-selected--” 我应该如何处理这个问题 谢谢您可以添加此代码 ddl1.Items.Add("--selected--"); //After you
<aspx:DropDownList
ID="ddl1"
runat="server"/>
让我们假设LocationofData将填充值“a、b、c等…”。我希望默认值为“-selected--”
我应该如何处理这个问题
谢谢您可以添加此代码
ddl1.Items.Add("--selected--"); //After your bind
因此:
链接:
您也可以使用Insert方法
链接:试试这个
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
ddl1.DataSource = LocationofData;
ddl1.DataBind();
//first item in the list
ddl1.Items.Insert(0, new ListItem("-- Select--",""));
}
}
我认为最佳实践是使用ondatabound,它调用BaseDataBoundControl.DataBound事件: ASP.NET控件:
<asp:DropDownList runat="server" ID="ddl1"
ondatabound="MyListDataBound"></asp:DropDownList>
我试过了,我相信你的订单是反向的。它应该是:newlistItem(“--Select--”和“”);谢谢你的回复。另外,为什么它发生在DataBind()之后?为什么不绑定新项?将数据绑定到dropdownlist会用新数据刷新它。dropdownlist有一个
AppendDataBoundItems
属性,可以用来避免出现这种情况,但我不喜欢它。它总是给人带来麻烦。绑定后,然后插入到位置0,第一个项目位置。为什么要在绑定后添加项目?@Rhs以便在控件顶部打印,这是众所周知的
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
ddl1.DataSource = LocationofData;
ddl1.DataBind();
//first item in the list
ddl1.Items.Insert(0, new ListItem("-- Select--",""));
}
}
<asp:DropDownList runat="server" ID="ddl1"
ondatabound="MyListDataBound"></asp:DropDownList>
protected void MyListDataBound(object sender, EventArgs e)
{
ddl1.Items.Insert(0, new ListItem("- Select -", ""));
}