.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