Pregunta

Estoy anulando una cuadrícula, agregando algunas características del cliente. Una de las características es un menú desplegable para ajustar el tamaño de la página. Estoy extendiendo la grilla usando un control de servidor del cliente, que funciona muy bien para lo que he hecho hasta ahora. Ahora, sin embargo, tengo algunos problemas para obtener el control agregado dinámicamente para hacer una devolución de datos. El javascript para iniciar la devolución no 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

El HTML es

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

Entonces, ¿tiene esto que ver con cuando estoy 'inyectando' los controles? ¿Tiene que ver con la adición dinámica de los controles?

¿Fue útil?

Solución

Lo primero que noté fue que te perderías esto:

pageSizeDropdown.AutoPostBack = true

pero no estoy seguro de si eso es todo lo que necesita para que funcione

Otros consejos

Debe configurar " AutoPostBack " a verdadero para una lista desplegable de devolución de datos. De lo contrario, otro control tendrá que volver a publicar el formulario (sin embargo, el evento SelectedIndexChanged se activará cuando eso suceda).

Creo que el control pageSizeDropdown necesitaría ser creado y el evento conectado antes en el ciclo de vida de la página, vea http://msdn.microsoft.com/en-us/library/ms178472.aspx . El control agregado dinámicamente debe crearse antes del evento LoadComplete de las páginas para que su evento de control pueda activarse.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top