Вы динамически создаете текстовые поля, поэтому вам нужно повторно привязать сетку к каждому сообщению, предоставить свои текстовые поля и идентификатор (всегда одинаковые) и повторно присоединить любые обработчики событий.
Во-первых, я понимаю, что большая часть этого также может быть выполнена с помощью ItemTemplates. Если то, что я пытаюсь сделать просто, невозможно, я подумаю об использовании их вместо этого.
Вот основные положения моей дилеммы:
У меня есть GridView на странице ASPX, загружаемой в CodeBehind. Каждая строка содержит пару кнопок, которые запускают событие OnRowCommand. Когда кто-то нажимает кнопку «Изменить», я создаю объект TextBox и добавляю его в коллекцию Controls конкретной ячейки.
Это прекрасно работает.
Проблема в том, что когда человек нажимает кнопку «Сохранить», OnRowCommand запускается снова, но ячейка регистрирует 0 элементов в коллекции «Элементы управления». Я почти уверен, что это происходит до PostBack, поэтому я не уверен, почему я не могу получить доступ к элементу управления TextBox.
Я проверил, сначала добавив TextBox, и он показывает 1 элемент управления в ячейке. Где-то между загрузкой страницы с текстовыми полями и нажатием кнопки эти элементы управления пропали без вести. Google не очень помог. Есть идеи?
c#,asp.net,gridview,rowcommand,
Вы можете создать addhandler с делегатом, когда вы создаете свою кнопку за кодом. обработчик будет стрелять до команды row.
Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
Dim btnsave As New ImageButton
If e.Row.RowType <> DataControlRowType.Pager And e.Row.RowType <> DataControlRowType.Header Then
AddHandler btnedit.Click, AddressOf btnedit_Click
GridView1.Rows(i).Cells(8).Controls.Add(btndel)
end if
end sub
Public Delegate Sub ImageClickEventHandler(ByVal sender As Object, ByVal e As ImageClickEventArgs)
Sub btnedit_Click(ByVal sender As Object, ByVal e As ImageClickEventArgs)
//do whatever you want here.
//possibly a redirect to the current page so nothing else fires
end sub