UpdatePanel의 GridView PagerRow에 LinkButton 세트를 추가하려고합니다. RowCreated 이벤트를 사용하여 인스턴스화하고 추가합니다. 내가 가진 문제는 클릭 핸들러가 두 번째에만 해고된다는 것입니다.포스트 백의 동적 컨트롤
나는, 내가
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를 사용하고있어 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를 작성하고 각 버튼의 클릭에 대한 이벤트 처리기를 추가합니다. 모든 다시 게시에서 호출기 행이 다시 만들어 지므로 이전 단추가 새 집합으로 바뀌고 해당 이벤트 처리기는 두 번째 클릭 만 실행됩니다. IsPostBack을 확인하면 처음 클릭 한 후에 버튼이 사라집니다. 단추를 클릭하고 페이지 크기를 변경 한 후에 표를 다시 바인딩하려고 시도했지만 동일한 문제가 발생합니다. 이 문제를 해결할 방법이 있습니까?
Page_Init의 컨트롤에 액세스 할 수 없으므로 문제가됩니다. 그들은 UserControl에있어 UserControl이 Page_Init 뒤의 DataBound 일 때까지 BottomPagerRow가 없습니다. – Echilon