일부 고객 기능을 추가하여 Grid를 재정의했습니다. 기능 중 하나는 페이지 크기를 조정하는 드롭 다운입니다. 나는 고객 서버 컨트롤을 사용하여 그리드를 확장하고 있는데, 이는 지금까지 내가해온 것을 위해 훌륭하게 작동한다. 자, 그러나 나는 역동적으로 추가 된 컨트롤을 다시 게시 할 수있는 약간의 문제가 있습니다. 다시 게시를 시작하는 자바 스크립트가 없습니다.동적으로 추가 된 컨트롤이 포스트 백을 수행하지 않음
Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
Dim pageSizePanel As New Panel
...
Dim countList As List(Of String) = GetCountList()
Dim pageSizeDropdown As New DropDownList()
pageSizeDropdown.ID = "pageSizeDropdown"
pageSizeDropdown.DataSource = countList
pageSizeDropdown.DataBind()
AddHandler pageSizeDropdown.SelectedIndexChanged, _
AddressOf HandlePageSizeChange
pageSizePanel.Controls.Add(pageSizeDropdown)
...
MyBase.Controls.AddAt(0, pageSizePanel)
MyBase.OnPreRender(e)
End Sub
html로 그래서
<select name="tab$grid1Tab$RadGrid1$pageSizeDropdown"
id="tab_grid1Tab_RadGrid1_pageSizeDropdown">
<option selected="selected" value="10">10</option>
<option value="20">20</option>
<option value="40">40</option>
<option value="80">80</option>
<option value="All">All</option>
</select>
이며, 이것이 내가 컨트롤을 '주입'있을 때 함께 할 수 있는가? 컨트롤을 동적으로 추가해야합니까?
당신은 그게 전부가 아닌 것에 대해 정확합니다. ViewState에는 굉장히 많은 것들이 있습니다. –
문제의 두 번째 부분은 포스트 백이 서버에 도달하면 발생할 수 있습니다. 페이지를 다시 작성할 때 해당 컨트롤이 없으면 (예 : DataGrid를 빌드하는이 코드에서는 ' t는 아직 달렸다). 나는 페이지 초기화 이벤트에서 격자를 만들려고했다. – John