.aspx文件有它通常的html代碼和一個「Panel1」控件。 首先,我創建了一個名爲「ddl」的下拉列表,並添加了一些ListItems,所有這些都來自後面的代碼。接下來,我想創建一定數量的其他DropDownLists並將它們複製到我添加到「ddl」的所有ListItems中,之後我需要在頁面運行時將它們添加到「Panel1」控件中。最重要的部分是,我希望所有動態創建的下拉列表在運行頁面時都具有選定的值。你可以看到下面的代碼:SelectedValue屬性和動態創建的DropDownLists。 ASP.NET
protected void Page_Load(object sender, EventArgs e)
{
DropDownList ddl = new DropDownList();
ddl.Items.Add(new ListItem("One", "1"));
ddl.Items.Add(new ListItem("Two", "2"));
ddl.Items.Add(new ListItem("Three", "3"));
ddl.Items.Add(new ListItem("Four", "4"));
ddl.Items.Add(new ListItem("Five", "5"));
ddl.Items.Add(new ListItem("Six", "6"));
ddl.Items.Add(new ListItem("Seven", "7"));
int j = 2;
for (int h = 0; h < 3; h++)
{
DropDownList ddlDynamic = new DropDownList();
//Add the items from ddl to the new dropdownlsit
for (int i = 0; i < ddl.Items.Count; i++)
{
ddlDynamic.Items.Add(ddl.Items[i]);
}
//the selected item in the first dropdownlist
//must be "Two" but it will be "Four". WHY???
ddlDynamic.SelectedValue = j.ToString();
ddlDynamic.ID = h.ToString();
Panel1.Controls.Add(ddlDynamic);
Panel1.Controls.Add(new LiteralControl("<br />"));
j++;
}
}
這裏的問題是,所有三個dropdownlists選擇的值將是相同的,這將是「四」,當邏輯上首先必須是「二」,第二屆「三「,第三必須有」四「作爲選定值。第一個問題是:我做錯了什麼?
第二個問題。 當使用ddlDynamic.Items.FindByValue(j.ToString()).Selected = true;
而不是ddlDynamic.SelectedValue = j.ToString();
我得到一個「不能在DropDownList中選擇多個項目」。這是爲什麼?
謝謝。
謝謝你的回答。你指出的文章非常好。但是答案有點不同。 – John