문제

그리드를 우선하고 일부 고객 기능을 추가하고 있습니다. 기능 중 하나는 페이지 크기를 조정하는 드롭 다운입니다. 고객 서버 컨트롤을 사용하여 그리드를 확장하고 있는데, 이는 지금까지 수행 한 작업에 적합합니다. 그러나 이제는 동적으로 추가 된 컨트롤을 사용하여 포스트 백을 수행하는 데 약간의 어려움이 있습니다. Postback을 시작하기위한 JavaScript는 존재하지 않습니다.

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>

그렇다면 이것이 제어를 '주입'할 때와 관련이 있습니까? 컨트롤의 동적 추가와 관련이 있습니까?

도움이 되었습니까?

해결책

내가 알아 차린 첫 번째 것은 당신이 이것을 놓치고 있다는 것입니다.

pageSizeDropdown.AutoPostBack = true

하지만 그게 당신이 작동하는 데 필요한 전부인지 잘 모르겠습니다.

다른 팁

드롭 다운 목록에 포스트 백으로 "AutoPostBack"을 True로 설정해야합니다. 그렇지 않으면 다른 컨트롤이 양식을 다시 게시해야합니다 (그러나 선택한 indexChanged 이벤트는 발생하면 발사됩니다).

Control PagesizedRopDown이 생성되어야한다고 생각하고 페이지 라이프 사이클의 앞부분에서 이벤트가 연결되어 있습니다. http://msdn.microsoft.com/en-us/library/ms178472.aspx. 컨트롤 이벤트가 발사 될 수 있도록 페이지가로드 컴퓨터 이벤트를하기 전에 동적으로 추가 된 제어를 만들어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top