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

C# Discussion :

Comment déclencher un PostBack ?


Sujet :

C#

  1. #1
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 122
    Points : 2 235
    Points
    2 235
    Par défaut Comment déclencher un PostBack ?
    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 :
    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;
    		}
    Pour plus de lisibilité j'ai enlevé le code d'initialisation des variables de contrôles.

    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.

  2. #2
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 122
    Points : 2 235
    Points
    2 235
    Par défaut
    Ah, voilà une info intéressante.

    Je vois ceci comme code du rendu du template de pagination du FormView :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	<td colspan="2"><table>
    			<tr>
    				<td><span>1</span></td>
                                    <td><a href="javascript:__doPostBack('ctl00$MainContent$FormView1','Page$2')">2</a></td>
                                    <td><a href="javascript:__doPostBack('ctl00$MainContent$FormView1','Page$3')">3</a></td>
                                    <td><a href="javascript:__doPostBack('ctl00$MainContent$FormView1','Page$4')">4</a></td>
    			</tr>
    		</table></td>
    	</tr>
    Je n'ai mis que les quatre premières, je crois qu'on a compris : il y a bel et bien un Postback dans le code des liens de pagination.

    Donc, il faut chercher l'explication du côté d'un UpdatePanel, fourni directement avec le FormView.

    Au début il y a bien ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sys.WebForms.PageRequestManager._initialize('ctl00$ctl09', 'ctl01', [], [], [], 90, 'ctl00');
    Bon, je vois, il faut que je révise le fonctionnement de l'UpdatePanel.

Discussions similaires

  1. Comment déclencher/forcer un postback ?
    Par LestoK dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/07/2008, 16h12
  2. [MySQL] Comment déclencher un 2me formulaire dans une autre page
    Par jlbrenas dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 27/01/2007, 17h43
  3. [C#] Comment déclencher le databinding au bon moment
    Par LE NEINDRE dans le forum ASP.NET
    Réponses: 2
    Dernier message: 08/11/2006, 10h50
  4. Réponses: 5
    Dernier message: 11/05/2006, 11h46
  5. FAQ : Comment déclencher un évènement à l'aide d'un script?
    Par vny dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/02/2006, 16h53

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