Question

Je remplace une grille en ajoutant des fonctionnalités client. L'une des fonctionnalités est une liste déroulante permettant d'ajuster la taille de la page. J'étends la grille en utilisant un contrôle serveur client, ce qui fonctionne très bien pour ce que j'ai fait jusqu'à présent. Maintenant, cependant, j'ai un peu de difficulté à obtenir le contrôle ajouté dynamiquement pour effectuer une publication. Le javascript pour lancer la publication n'est pas présent.

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 "injecte" les contrôles? Est-ce que cela a à voir avec l'ajout dynamique des contrôles?

Était-ce utile?

La solution

La première chose que j'ai remarquée, c'est que vous manqueriez ceci:

pageSizeDropdown.AutoPostBack = true

mais je ne sais pas si c'est tout ce dont vous avez besoin pour que cela fonctionne

Autres conseils

Vous devez définir "AutoPostBack". true pour une liste déroulante à publier. Sinon, un autre contrôle devra renvoyer le formulaire (toutefois, l'événement SelectedIndexChanged sera déclenché lorsque cela se produira).

Je pense que le contrôle pageSizeDropdown devrait être créé et que l'événement a été créé plus tôt dans le cycle de vie de la page, voir http://msdn.microsoft.com/en-us/library/ms178472.aspx . Le contrôle ajouté dynamiquement doit être créé avant l'événement LoadComplete de la page afin que son événement de contrôle puisse être déclenché.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top