0

2 つの DropDownLists があり、次のような項目を追加しています。

using (SqlDataReader reader = command.ExecuteReader())
{
    ddUserTarget.Items.Add(new ListItem(" ", "empty534534545"));
    while (reader.Read())
    {
        ddUsersSource.Items.Add(new ListItem(reader[1].ToString(), reader[0].ToString()));
        ddUserTarget.Items.Add(new ListItem(reader[1].ToString(), reader[0].ToString()));
    }
}

ボタンのクリックまたは自動ポストバックの後にこの DropDownList のいずれかを使用すると、次の HttpException が発生します。

DropDownList では、複数の項目を選択することはできません。(0x80004005)

この行を削除すると、エラーは表示されなくなります。

ddUserTarget.Items.Add(new ListItem(" ","empty534534545"));

エラーは次の位置でトリガーされます。

それ以外の場合 (ddUserTarget.SelectedValue == "テスト")

今は本当にどうしたらいいのかわからない……。

4

2 に答える 2

2

おそらく、複数の場所で「SelectedItem」に値を設定しています。ポストバックする前に(ページの最後で)、選択したアイテムをクリアすることをお勧めします。例えば:

DropDownList myDDL = new DropDownList();
myDDL.ClearSelection();
于 2013-09-16T08:52:28.813 に答える
0

これを試して。while ループでは、同じ項目を 2 回挿入しています。

        using (SqlDataReader reader = command.ExecuteReader())
        {
            ddUserTarget.Items.Insert(0,new ListItem("empty534534545"));
            while (reader.Read())
            {
                ddUsersSource.Items.Insert(ddUsersSource.Items.Count,new ListItem(reader[1].ToString(), reader[0].ToString()));                
            }
        }
于 2013-09-16T09:01:55.873 に答える