IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Problème de postdata à travers des onglets


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Par défaut Problème de postdata à travers des onglets
    Bonjour à tous,

    Merci à ceux qui prendront le temps de me lire

    Voilà. Je travaille actuellement sur une page ASPX avec un composant de gestion d'onglets.
    C'est un système tout bête, lorsque je clique sur le premier onglet s'affiche le contenu du premier onglet, quand je clique sur le deuxième, le contenu du 2eme. (le tout en JS) Un peu dans ce goût là : http://www.supportduweb.com/ftp/ybou...s/onglets.html

    Mon souci vient de la partie LoadPostData des composants(textbox, ...) faisant partie de chaque onglet.
    Lorsque mes textbox sont dans la page en standard sans onglet aucun problème, mais lorsque je les mets dans un onglet, le postData ne se fait plus...Les données postées ne mettent pas à jour les contrôles.

    Voici le code de mon composant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    Imports System.Web.UI
     
    Namespace WebControls.Common
      <ParseChildren(True)> _
      <PersistChildren(False)> _
      Public Class Tab
        Inherits CompositeControl
        Implements INamingContainer
     
     
    #Region "Attributs"
        Private moOngletsList As BulletedList
        Private moUpanContent As UpdatePanel
        Private mnNumOngletActif As Byte
    #End Region
     
    #Region "Propriétés"
        Private maOnglets As New List(Of Onglet)
        <PersistenceMode(PersistenceMode.InnerProperty)> _
        Public ReadOnly Property Onglets() As List(Of Onglet)
          Get
            Return maOnglets
          End Get
        End Property
    #End Region
     
    #Region "Evenements"
        Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
          EnsureChildControls()
          mnNumOngletActif = 0
          MyBase.OnInit(e)
        End Sub
     
        Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
          MyBase.OnLoad(e)
     
          Dim loHlk As HyperLink
     
          For Each loOnglet In Onglets
            moUpanContent.ContentTemplateContainer.Controls.Add(loOnglet)
            loHlk = New HyperLink() With {.Text = loOnglet.Title}
            loHlk.Attributes.Add("PanID", loOnglet.ClientID)
            moOngletsList.Controls.Add(loHlk)
          Next
     
          For i = 0 To Me.Onglets.Count - 1
            If mnNumOngletActif <> i Then
              Me.Onglets(i).Attributes.Add("style", "display: none")
            End If
          Next
        End Sub
     
        Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
          MyBase.OnPreRender(e)
     
          ScriptManager.RegisterClientScriptInclude( _
            Me.Page _
            , Me.Page.GetType _
            , "onglet" _
            , ResolveClientUrl("~/_Code/WebControl/Tab/Tab.js")
          )
        End Sub
     
        Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
          ScriptManager.RegisterStartupScript( _
            Me.Page _
            , Me.Page.GetType() _
            , "key" & Me.ClientID _
            , "$(function() { $('#" & Me.ClientID & "').initTab(); });" _
            , True
          )
     
          MyBase.Render(writer)
        End Sub
    #End Region
     
    #Region "Méthodes"
        Protected Overrides Sub CreateChildControls()
          MyBase.CreateChildControls()
     
          moOngletsList = New BulletedList() With {.CssClass = "tab"}
          Me.Controls.Add(moOngletsList)
     
          moUpanContent = New UpdatePanel() With {.ID = "upanOnglets", .ChildrenAsTriggers = False, .UpdateMode = UpdatePanelUpdateMode.Conditional}
          moUpanContent.Attributes("style") = "clear:left"
          Me.Controls.Add(moUpanContent)
     
          Me.ChildControlsCreated = True
        End Sub
    #End Region
     
      End Class
     
      <ParseChildren(False)> _
      <PersistChildren(True)> _
      Public Class Onglet
        Inherits CompositeControl
     
        Private moPanContent As Panel
     
        Private msTitle As String
        Public Property Title() As String
          Get
            Return msTitle
          End Get
          Set(ByVal value As String)
            msTitle = value
          End Set
        End Property
     
        Protected Overrides Sub CreateChildControls()
          MyBase.CreateChildControls()
     
          Me.moPanContent = New Panel With {.CssClass = "tab-panel"}
          Me.Controls.Add(Me.moPanContent)
        End Sub
     
        Protected Overrides Sub AddParsedSubObject(ByVal obj As Object)
          EnsureChildControls()
          moPanContent.Controls.Add(obj)
        End Sub
      End Class
    End Namespace
    Au niveau de l'aspx, ça donne, en simplifié ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <Tab ID="TabOnglets" runat="server">
      <Onglets>
        <Onglet Title="1er Onglet" runat="server">
          <div>
            <asp:TextBox ID="txtCommentaire" TextMode="MultiLine" Rows="8"  runat="server" />
          </div>
        </Onglet>
        <Onglet Title="2eme onglet" runat="server">
          <div>
            <asp:TextBox ID="txtCommentaire2" TextMode="MultiLine" Rows="8"  runat="server" />
          </div>
        </Onglet>
      </Onglets>
     </Tab>
    En clair, lorsque je modifie la valeur de txtCommentaire que je fais un post, rien n'est mis à jour sur contrôle serveur alors que la valeur est bien postée...
    Je pense qu'il doit manquer quelque chose sur les composant Tab et Onglet qui empêchent de reconstruire la bonne hiérarchie des contrôles et donc de mettre à jour la textbox. Mais alors quoi? ça me dépasse...

    Si jamais quelqu'un voit de quoi il peut s'agir, il me sauve.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Par défaut
    Résolu.

    Apparemment, les onglets se reconstruisent trop tard, du coup, au moment du LoadPostData, il est incapable de mettre à jour les contrôles.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Web Service] Problème SOAP communication à travers des tableaux
    Par yonialhadeff dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 08/12/2011, 16h58
  2. [Toutes versions] Problème avec la gestion des onglets
    Par DocCouz dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/10/2009, 19h16
  3. Problème de boutons dans des onglets
    Par nicolav dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/07/2009, 10h33
  4. POI rencontre un problème avec la suppression des onglets
    Par hicham_alaoui1 dans le forum Documents
    Réponses: 0
    Dernier message: 12/10/2008, 20h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo