OVH Cloud OVH Cloud

Action sur bouton généré dynamiquement

1 réponse
Avatar
Mach
Bonjour,

Je fais appel a vous car je suis coincé dans un dev, et je n'arrive pas
trouvé la solution.

Mon probleme est le suivant:
Je souhaite généré un boutton dynamiquement (code behind) et lui associer
une action serveur. Jusque la pas de soucis.

La où ça ce complique c'est que je load des informations depuis une source
de données exterieure. Ainsi pour sauvegarder mes informations je test si on
est en post-back ( IsPostBack() ) et si c'est le cas, je ne recherche pas ma
page afin de ne pas reloader les informations et du coup enregistrer les
informations deja presentes, puis dans ma fonction d'enregistrement je force
un reload des informations.

Le soucis c'est que du coup mon boutton n'etant pas réinstancié, je ne peux
pas sauvegarder et au final mon boutton ce comporte comme un simple submit et
n'effectue pas les actions voulu.

Avez vous une idée, car je bloque et je ne vois pas comment faire.
Merci d'avance

------------------

A titre voici quelques bout de code pour illustrer un peu mes paroles:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
system.EventArgs) Handles MyBase.Load
If Not IsPostBack() Then
LoadData()
End If
End Sub

Private Sub LoadData()
Dim TextBoxInfo as New Label
Dim ButtonSave as New Button
TextBoxInfo.Text = BBD.getInfo("Login")
TextBoxInfo.ID = "Login"
ButtonSave.text = "Save"
Me.TabelCellInfo.controls.add(TextBoxInfo)
Me.TabelCellInfo.controls.add(ButtonSave)
End Sub

Private Sub ButtonSave_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles ButtonSave.Click
BDD.setInfo("Login") = Request.form("Info")
End Sub

1 réponse

Avatar
Zazar
Bonjour,

Mon probleme est le suivant:
Je souhaite généré un boutton dynamiquement (code behind ) et lui associer
une action serveur. Jusque la pas de soucis.

La où ça ce complique c'est que je load des informations depu is une source
de données exterieure. Ainsi pour sauvegarder mes informations je test si on
est en post-back ( IsPostBack() ) et si c'est le cas, je ne recherche p as ma
page afin de ne pas reloader les informations et du coup enregistrer le s
informations deja presentes, puis dans ma fonction d'enregistrement je force
un reload des informations.

Le soucis c'est que du coup mon boutton n'etant pas réinstancié , je ne peux
pas sauvegarder et au final mon boutton ce comporte comme un simple sub mit et
n'effectue pas les actions voulu.



Vous devez réinstancier le bouton à chaque requête. Mais v ous n'êtes pas
obligé d'aller rechercher les informations dans la base de donné es à
chaque fois. Dans le load, faîtes donc systématiquement les
instanciations de vos objets et ajoutez les à la collection Controls .
Ensuite, testez si c'est un postback, et si ce n'en est pas un,
initialisez les propriétés de vos objets en allant chercher les
informations dans votre base de données.

--
Zazar