在Page_Load上的ASP下拉列表

时间:2012-10-09 17:20:00

标签: c# asp.net

我想使用Aspx创建一个Drop Down,它会列出数据源中包含的所有项目,但它会有一个额外的默认值“selected”。

在aspx文件中,我有:

<aspx:DropDownList
    ID="ddl1"
    runat="server"/>

在我的aspx.cs文件中,我有一个page_load,其中包含:

protected void Page_Load(object sender, EventArgs e)
{
  ddl1.DataSource = LocationofData;
  ddl1.DataBind();
}

让我们假设LocationofData将填充值“a,b,c等......”。我希望默认值为“--selected - ”

我该如何处理?

由于

3 个答案:

答案 0 :(得分:0)

您可以添加此代码

ddl1.Items.Add("--selected--"); //After your bind

所以:

ddl1.DataSource = LocationofData;
ddl1.DataBind();
ddl1.Items.Add("--selected--"); //After your bind

链接:http://msdn.microsoft.com/en-us/library/e7s6873c.aspx

您也可以使用Insert method

链接:http://msdn.microsoft.com/en-us/library/ffx2x2y2.aspx

答案 1 :(得分:0)

试试这个

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--",""));
   }
}

答案 2 :(得分:0)

我认为最佳做法是使用调用BaseDataBoundControl.DataBound事件的ondatabound: ASP.NET控件:

<asp:DropDownList runat="server" ID="ddl1"
  ondatabound="MyListDataBound"></asp:DropDownList>

代码背后:

protected void MyListDataBound(object sender, EventArgs e)
{
    ddl1.Items.Insert(0, new ListItem("- Select -", ""));
}