我正在尝试将一组 LinkButtons 添加到 UpdatePanel 中 GridView 的 PagerRow 中。我正在使用 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
要自己创建 LinkButtons,我正在使用
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,按钮在第一次点击后消失。在单击按钮并且页面大小发生变化后,我尝试重新绑定网格,但同样的事情发生了。有没有解决的办法?