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

「Select Source Database」を新しい項目として DataTextField としてデータソースに追加し、null を DataValueField として追加します。それはそれを修正します。データソースにデータバインドすると、他の値はすべて削除され、データソースの値のみが表示されます。

于 2012-09-14T16:53:15.107 に答える
0

以前に追加したもの (あなたの場合は「Select Source Database」文字列) とは無関係に、データソースを手動で設定すると、以前に追加したすべての項目が置き換えられます。したがって、データコンテキストを設定する前に(ゼロインデックスまたは最初の位置に)アイテムを追加しますdlSourceDatabases.Items.Insert(0, "Select Source Database")

于 2012-09-14T16:53:21.017 に答える