Domanda

Sto eseguendo l'override di una griglia, aggiungendo alcune funzionalità del cliente. Una delle funzionalità è un menu a discesa per regolare le dimensioni della pagina. Sto estendendo la griglia usando un controllo server del cliente, che funziona benissimo per quello che ho fatto finora. Ora, tuttavia, sto avendo un po 'di problemi a ottenere il controllo aggiunto dinamicamente per fare un postback. Il javascript per avviare il postback non è 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

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

Quindi, ha a che fare con "iniettando" i controlli? Ha a che fare con l'aggiunta dinamica dei controlli?

È stato utile?

Soluzione

La prima cosa che ho notato è che ti saresti perso questo:

pageSizeDropdown.AutoPostBack = true

ma non sono sicuro che sia tutto ciò di cui hai bisogno per farlo funzionare

Altri suggerimenti

Devi impostare " AutoPostBack " su true per un elenco a discesa da postback. In caso contrario, un altro controllo dovrà restituire il modulo (tuttavia, l'evento SelectedIndexChanged verrà generato quando ciò accade).

Penso che la pagina di controllo SizeDropdown debba essere creata e l'evento agganciato in precedenza nel ciclo di vita della pagina, vedere http://msdn.microsoft.com/en-us/library/ms178472.aspx . Il controllo aggiunto dinamicamente deve essere creato prima dell'evento LoadComplete delle pagine in modo che il suo evento di controllo possa essere attivato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top