Je remplace une grille, en ajoutant certaines fonctionnalités client. Une des fonctionnalités est une liste déroulante pour ajuster la taille de la page. J'étends la grille en utilisant un contrôle de serveur client, ce qui fonctionne très bien pour ce que j'ai fait jusqu'ici. Maintenant, cependant, j'ai un peu de mal à obtenir le contrôle dynamiquement ajouté pour faire une publication. Le javascript pour lancer la publication n'est pas présent.Contrôle ajouté dynamiquement ne pas faire de publication
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
Le code HTML est
<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>
Alors, est-ce que cela a à voir avec quand je suis 'injection' les contrôles? Cela concerne-t-il l'ajout dynamique des contrôles?
Vous avez raison à propos de ce n'est pas tout. Il y a des trucs ViewState détraqués. –
La 2ème partie du problème peut être due à une fois que la publication rencontre le serveur, elle ne sait pas nécessairement quoi faire si ce contrôle n'existe pas lors de la reconstruction de la page (c.-à-d. t été couru encore). j'essaierais de construire la grille dans l'événement page init – John