.aspx 文件有它通常的 html 代码和一个“Panel1”控件。首先,我正在创建一个名为“ddl”的下拉列表并向其中添加一些 ListItem,所有这些都来自后面的代码。接下来我想创建一定数量的其他 DropDownLists 并将我添加到“ddl”的所有 ListItems 复制到它们,之后我需要在页面运行时将它们添加到“Panel1”控件中。最重要的部分是我希望所有动态创建的下拉列表在运行页面时都有一个选定的值。你可以看到下面的代码:
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++;
}
}
这里的问题是所有三个下拉列表的选定值都是相同的,它将是“四”,当逻辑上第一个必须是“二”时,第二个是“三”,第三个必须有“四”作为选定值。第一个问题是:我做错了什么?
第二个问题。当使用ddlDynamic.Items.FindByValue(j.ToString()).Selected = true;
而不是ddlDynamic.SelectedValue = j.ToString();
我得到“不能在下拉列表中选择多个项目”时。这是为什么?
谢谢你。