0

这是我的代码。有用。唯一的问题是当我将数据集绑定到其数据源时,下拉框的第一个索引被清除(“选择源数据库”)。

我想绑定数据集并包含第一个索引“选择源数据库”。

我怎样才能修改我的代码来完成这个?

protected void ddlServer_SelectedIndexChanged(object sender, EventArgs e)
{
    ddlSourceDatabases.Items.Clear();
    ddlSourceDatabases.Items.Add("Select Source Database");

    lbxSourceTables.Items.Clear();

    if (ddlSourceServers.SelectedIndex != 0)
    {
       try
       {
           ddlSourceDatabases.DataSource = Database.GetDatabases(ddlSourceServers.Text);
           ddlSourceDatabases.DataTextField = "name";
           ddlSourceDatabases.DataValueField = "name";
           ddlSourceDatabases.DataBind();
        }
        catch (Exception)
        {               
        }
     }
}
4

4 回答 4

1

在数据绑定到第一个位置后插入您的项目:

//...
ddlSourceDatabases.DataBind();
ddlSourceDatabases.Items.Insert(0, "Select Source Database");
//...
于 2012-09-14T16:52:35.520 回答
0

我已经修改了你的代码,现在它应该可以工作了

protected void ddlServer_SelectedIndexChanged(object sender, EventArgs e)
 {
ddlSourceDatabases.Items.Clear();
lbxSourceTables.Items.Clear();

if (ddlSourceServers.SelectedIndex != 0)
{
   try
   {
       ddlSourceDatabases.DataSource = Database.GetDatabases(ddlSourceServers.Text);
       ddlSourceDatabases.DataTextField = "name";
       ddlSourceDatabases.DataValueField = "name";
       ddlSourceDatabases.DataBind();

      ddlSourceDatabases.Items.Add("Select Source Database");

    }
    catch (Exception)
    {               
    }
 }

}
于 2012-09-14T16:53:03.513 回答
0

将“选择源数据库”作为新项目添加到您的数据源作为 DataTextField 和 null 作为 DataValueField。那会解决它。当您将数据绑定到数据源时,任何其他值都将被删除,并且只会显示来自您的数据源的值。

于 2012-09-14T16:53:15.107 回答
0

与您之前添加的内容无关(在您的情况下是“选择源数据库”字符串),当您手动设置数据源时,您将替换之前添加的所有项目。所以在设置它的数据上下文之前添加项目(到零索引或第一个位置)使用dlSourceDatabases.Items.Insert(0, "Select Source Database")

于 2012-09-14T16:53:21.017 回答