Я пытаюсь добавить набор LinkButtons к PagerRow GridView в UpdatePanel. Я использую событие RowCreated, чтобы создать и добавить их. У меня проблема в том, что обработчики кликов запускаются только во второй раз.
Я создаю LinkButtons используя
Protected Sub grd_RowCreated(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If (e.Row.RowType = DataControlRowType.Pager) Then
Dim pageSizer = New GridViewPageSizer(grdItems)
e.Row.Cells(0).Controls.AddAt(0, pageSizer)
End If
End Sub
Для создания самих кнопок ссылок я использую
Dim lnkSize = New LinkButton() With { _,
.Text = size.ToString(), _
.CommandArgument = size.ToString(), _
.ID = "pageSizer" & size
}
AddHandler lnkSize.Click, AddressOf lnkPageSize_Click ' an EventHandler which just changes pagesize based on CommandArgument
liSize.Controls.Add(lnkSize)
GridViewPageSizer
наследует HtmlGenericControl и добавляет обработчик событий для нажатия каждой кнопки. При каждой обратной передаче строка пейджера воссоздается, поэтому старые кнопки заменяются новым набором, а их обработчики событий запускаются только при втором щелчке. Если я проверю! IsPostBack, кнопки исчезают после первого щелчка. Я пытался перепривязать сетку после нажатия кнопок и изменения размера страницы, но происходит то же самое. Есть ли способ обойти это?