Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
721 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  User control dynamique et Viewstate

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

User control dynamique et Viewstate

n°614313
franckblac​k
Posté le 17-01-2004 à 10:52:08  profilanswer
 

Voila, j'ai un probleme sur une page ASPX. Je souhaite instancier dynamiquement un nombre indefini du meme user control suite a un evenement de clic et les afficher.
 
Or, mon probleme, c'est si je reposte ma page, mes users control disparaissent, le viewstate ne les conserve pas!!!! (le repost de la page est suite a un autopostback d'un dropdownlist sur ce user control).
 
Comment faire?  
Merci

mood
Publicité
Posté le 17-01-2004 à 10:52:08  profilanswer
 

n°1105691
tomtom41
It's not a bug, it's a feature
Posté le 02-06-2005 à 16:11:48  profilanswer
 

up je suis interessé :)

n°1152473
horko
Posté le 18-07-2005 à 13:37:00  profilanswer
 

up
si quelqu un a la réponse, je suis preneur

n°1152531
nraynaud
lol
Posté le 18-07-2005 à 14:42:34  profilanswer
 

on peut voir le code ?


---------------
trainoo.com, c'est fini
n°1152597
horko
Posté le 18-07-2005 à 15:24:35  profilanswer
 

nraynaud a écrit :

on peut voir le code ?


 
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not IsPostBack Then
            Dim c1 As UserControl = LoadControl("MyControls.ascx" )
            PlaceHolder1.Controls.Add(c1)
       End If
    End Sub

 
C est tout con mais quand je clic sur un bouton, ma page se recharge et le usercontrol qui était dans le PlaceHolder a disparu. Donc soit il faut empécher la page de se recharger mais je doute que ca soit la bonne solution soit une option m a échappée. J'ai bien fait attention, toutes les propriétés enableviewstate de mes controles sont à true. Là je bloque.

n°1152625
nraynaud
lol
Posté le 18-07-2005 à 15:37:47  profilanswer
 

[:pingouino]
 
c'est dans le on_click() du bouton que tu dois ajouter le contrôle. Inutile de toucher à cette méthode on_load.


---------------
trainoo.com, c'est fini
n°1152661
horko
Posté le 18-07-2005 à 15:55:59  profilanswer
 

je veux bien mais je rajoute chaque usercontrol sur l'évènement clic de mon usercontrol donc il faut bien que j en place déjà un dans mon PlaceHolder au load de la page.
 
Ensuite quand je clic sur mon usercontrol et que je cherche a rajouter un controle dans le PlaceHolder, la page se recharge et tout ce qui était dans le PlaceHolder est perdu.

n°1152677
nraynaud
lol
Posté le 18-07-2005 à 16:04:35  profilanswer
 

ah oui ... ben tu enregistres le même handler pour tous les contrôles lors de leur création, et tu fais la différence sur la source de l'évènement ?


---------------
trainoo.com, c'est fini
n°1152738
horko
Posté le 18-07-2005 à 16:53:31  profilanswer
 

pour l instant j en suis juste a l ajout d un seul controle dynamique qui tient sur le refresh de la page mais j y arrive pas alors pour récupérer les évènements des controles créés on verra plus tard.
 
J ai vu plusieurs topic sur le viewstate mais ca me dit pas comment m en servir. Enfin bref, je suis perdu, rien ne marche.

n°1152835
nraynaud
lol
Posté le 18-07-2005 à 18:09:34  profilanswer
 

ben oublie le viewstate pour l'instant, c'est pas nécessaire.
Par contre, tu DOIS maîrtriser les évènements, c'est la base des interfaces utilisateur.


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le 18-07-2005 à 18:09:34  profilanswer
 

n°1152839
horko
Posté le 18-07-2005 à 18:19:32  profilanswer
 

c est bon pour le viewstate, j ai trouvé la solution, j ai galéré dans plusieurs direction mais j ai fini par trouvé ce qu il me fallait dans la doc de .net
 

Code :
  1. Private lgNbCtrl As Long
  2.     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  3.         If Not IsPostBack Then
  4.             lgNbCtrl = 0
  5.             If ViewState("controlsadded" ) Is Nothing Then
  6.                 AddControls()
  7.                 lgNbCtrl += 1
  8.             End If
  9.         End If
  10.     End Sub
  11.     Protected Overrides Sub LoadViewState(ByVal savedState As Object)
  12.         Dim i As Long
  13.         MyBase.LoadViewState(savedState)
  14.         If ViewState("controlsadded" ) = True Then
  15.             For i = 1 To lgNbCtrl
  16.                 AddControls()
  17.             Next
  18.         End If
  19.     End Sub
  20.     Private Sub AddControls()
  21.         Dim c1 As UserControl = LoadControl("MyControl.ascx" )
  22.         Panel1.Controls.Add(c1)
  23.         Panel1.Controls.Add(New LiteralControl("<BR>" ))
  24.         ViewState("controlsadded" ) = True
  25.     End Sub


 
Par contre maintenant j arrive plus a avoir mes évènements. En statique ca va mais maintenant que c est dynamique c est un peu plus difficile.

n°1152848
nraynaud
lol
Posté le 18-07-2005 à 18:35:44  profilanswer
 

[:pingouino] je jette l'éponge


---------------
trainoo.com, c'est fini
n°1157078
Lanza
Free NaN
Posté le 22-07-2005 à 12:35:08  profilanswer
 

Pour que les évenements fonctionnent, spécifie l'ID de tes UserControls chargés dynamiquement. Sinon l'ID va changer à chaque Postback et tes evenements ne fonctionneront pas.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  User control dynamique et Viewstate

 

Sujets relatifs
[action-script / XML] texte dynamique dans flash, parceur XML et posASP - ADSI Impossible d'ajouter un User, erreur 80005008
comptage (nb max de user a instant t )menu dynamique js et php
insertion et suppression dynamique de lignes dans un tableauMon premier formulaire dynamique...
comment faire ? insertion dynamique de lignes dans un tableaudeveloppez un control panel (un .cpl)
ACCESS : nom de fichier en dynamique dans Macro TransférerFeuilleCalc[Java]Declarer des variables de maniere dynamique?
Plus de sujets relatifs à : User control dynamique et Viewstate


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR