Pergunta

Eu estou substituindo um Grid, acrescentando algumas características do cliente. Uma das características é um drop-down para ajustar o tamanho da página. Eu estou estendendo a rede usando um controle de servidor do cliente, que funciona muito bem para o que eu fiz até agora. Agora, porém estou tendo um pouco de dificuldade para obter o controle adicionados dinamicamente para fazer uma nova postagem. O javascript para iniciar a postagem não está presente.

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

O 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>

Então, isso tem a ver com quando estou 'injetar' os controles? Será que ela tem a ver com a adição dinâmica dos controles?

Foi útil?

Solução

A primeira coisa que notei foi que você estaria perdendo isto:

pageSizeDropdown.AutoPostBack = true

mas eu não tenho certeza se isso é tudo que você precisa para que ele funcione

Outras dicas

Você precisa set "AutoPostBack" a verdade para uma lista suspensa a postagem. Caso contrário, outro controle terá que postar o formulário de volta (no entanto, o evento SelectedIndexChanged dispara quando isso acontecer).

Eu acho que o pageSizeDropdown controle precisaria ser criado eo evento ligado no início do ciclo de vida de página, consulte http://msdn.microsoft.com/en-us/library/ms178472.aspx . As necessidades de controle adicionados dinamicamente a ser criado antes do evento páginas LoadComplete de modo que seu evento de controle pode disparar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top