Я работаю над созданием кнопок, которые создаются динамически на основе результаты SQL-запрос:Динамически создаваемое создание кнопки Loop не создавая уникальные идентификаторы
private void createPagingButtons(DateTime firstDayofWeek, DateTime lastDayofWeek)
{
int i = 1;
SqlDataReader returnedQuery = getDefaultUser(firstDayofWeek, lastDayofWeek);
while (returnedQuery.Read())
{
string buttonName = returnedQuery["Person"].ToString();
System.Diagnostics.Debug.WriteLine(buttonName);
Button btn = new Button();
btn.ID = i.ToString();
btn.Click += new EventHandler(btn_Click);
btn.Text = buttonName;
pagingPanel.Controls.Add(btn);
i++;
}
}
Так я пытаюсь присвоить уникальный идентификатор кнопки является по назначая их число, которое увеличивается на единицу каждый раз, когда перебирает время цикла:
btn.ID = i.ToString();
Но это не работает, и я получаю сообщение об ошибке: несколько элементов управления с тем же идентификатором «1» были найдены. FindControl требует, чтобы элементы управления имели уникальные идентификаторы.
Почему это происходит и как я могу это исправить?
Почему бы вам не использовать значащие имена типа 'BtnPerson_1'? –
Что произойдет, если вы добавите буквы 'btn.ID =" btn_ "+ i.ToString();'? –
btn.ID = "Btn_" + i.ToString(); вызывает ту же ошибку. Было найдено несколько элементов управления с тем же идентификатором 'Btn_1'. FindControl требует, чтобы элементы управления имели уникальные идентификаторы. –