Bonjour tout le monde,
J'aimerais savoir comment déclencher un PostBack par code en C#.
J'ai bien lu une demi-dizaine de fils qui expliquent que c'est facile à faire, et je ne sais toujours pas faire.
Alors maintenant j'explique pourquoi, des fois que quelqu'un ait une meilleure idée.
À l'aide de deux listes déroulantes en cascade, je fais sélectionner à l'utilisateur un produit à afficher dans un FormView.
Par ailleurs, le FormView contenant toutes les données de la table des produits (en fait d'une vue qui permet d'avoir la catégorie avec), une pagination permet aussi de sélectionner un produit d'après sa position dans la table.
Dans ce cas j'aimerais synchroniser les listes déroulantes pour qu'elles soient en cohérence avec ce qui a été sélectionné dans le FormView. Seulement voilà : sauf si j'ai mal cherché, le FormView n'a pas d'AutoPostBack.
Le résultat fonctionne avec un bouton :
Pour plus de lisibilité j'ai enlevé le code d'initialisation des variables de contrôles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 protected void btnSynchro_Click(object sender, EventArgs e) { ddlCategories.SelectedValue = lblCategoryId.Text; ddlProduits.SelectedValue = lblProductId.Text; }
Si je clique sur le bouton, oui, dans la liste déroulante de produits j'ai bien le produit sélectionné dans le FormView, et au-dessus la catégorie correspondante.
J'ai voulu appeler ce code depuis FormView1_PageIndexChanged : il est bien exécuté, en pas à pas je vois même le code HTML de la page s'afficher, mais il n'y a pas de PostBack donc à l'écran les listes déroulantes gardent les valeurs qu'elles avaient avant.
Partager