Я довольно новичок в комбо C # с ASP.NET, поэтому я постараюсь быть максимально ясным с моим объяснением.
Я использую GridView для отображения некоторых столбцов и строк, которые находятся в базе данных. Это работает отлично. Потому что я хотел динамически добавлять столбцы из списка имен. Допустим, у нас есть список с 5 именами, затем он динамически создает столбец для каждого имени в GridView.
Вот некоторый код для отображения того, что я делаю:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Create columns for each student
List<Student> allStudents = new Eetlijst.Business.Students().GetAll();
allStudents.Reverse();
foreach (Student student in allStudents)
{
StudentBoundField studentField = new StudentBoundField();
studentField.HeaderText = student.Naam;
MaaltijdGrid.Columns.Insert(4, studentField);
}
ShowDataInGrid(DateTime.Now.Month, DateTime.Now.Year);
Там есть еще кое-что, что не важно. ShowDataInGrid выглядит следующим образом:
public void ShowDataInGrid(int maand, int jaar)
{
List<Maaltijd> allMaaltijden = new Eetlijst.Business.Maaltijden().GetByMonthAndYear(maand, jaar);
Session.Contents.Add("maaltijden", allMaaltijden);
MaaltijdGrid.DataSource = allMaaltijden;
MaaltijdGrid.DataBind();
}
Как мне создать динамические столбцы для каждой строки?
Я создаю их с событием DataBound. Поэтому при привязке данных GridView столбцы заполняются данными. Внутри также есть проверка, находится ли строка в режиме редактирования или нет. Поэтому, когда я нажимаю на кнопку редактирования рядом со строкой, строка отлично работает в режиме редактирования. Код, который я сделал, добавляет элемент управления TextBox в ячейку.
Когда я заполняю значение и нажимаю кнопку Обновить, он больше не может найти никаких элементов управления, и поэтому я не могу получить введенное мной значение. Элемент управления все еще там в DataBound, когда я ставлю точку останова после него. Но как только я нажимаю кнопку «Обновить», все элементы управления ячейками исчезают.
Я искал в Интернете, и все, что я нашел, это то, что оно как-то связано с приложением, запускающим обратную передачу, прежде чем оно достигнет метода RowUpdating.
Итак, как я могу позволить элементам управления существовать, которые я добавил в ячейку, когда она находится в режиме редактирования?
Если кому-то понадобится код, который находится внутри события DataBound, я опубликую его.