Файл .aspx имеет обычный html-код и элемент управления Panel1. Прежде всего, я создаю раскрывающийся список под названием «ddl» и добавляю к нему некоторые ListItems, все это из кода позади. Затем я хочу создать определенное количество других DropDownLists и скопировать им все элементы ListItems, которые я добавил в «ddl», после чего мне нужно, чтобы они были добавлены в элемент «Panel1», когда страница запущена. Самая важная часть заключается в том, что я хочу, чтобы все динамически созданные dropdownlists имели выбранное значение при запуске страницы. Вы можете увидеть код ниже:Свойство 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». Почему это?
Thank you.
Благодарим за ответ. Статья, на которую вы указали, действительно хороша. Однако ответ немного отличается. – John