PageMethods / WebMethod : Comment récupérer la reférence de la page courante

Signaler
Messages postés
7
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
25 mars 2008
-
Messages postés
7
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
25 mars 2008
-
Bonjour,

Est-il possible en javascript avec PageMethods de passer la référence du webform en cours à une méthode serveur pour modifier des controls ?

ou sinon comment coté serveur en c# retrouver la référence de la page courante depuis une methode static ???

je sais pas si tout ca est bien clair ...

Voici le code :

<script type="text/javascript" language="javascript">
 
        var objExtender;

        function pageLoad(sender, args)
        {
            objExtender = $find("<%=CollapsiblePanelExt1.ClientID%>");
            objExtender.add_expandComplete(getCollapsibleState);
            objExtender.add_collapseComplete(getCollapsibleState);
        }

        function getCollapsibleState()
        {
            if(objExtender.get_Collapsed())
            {  
               // blabla
            }
            else
            {  
                 PageMethods.activeGridview('idGridview');          
            }
        } 
        </script>

    [System.Web.Services.WebMethod]
    [System.Web.Script.Services.ScriptMethod]
    public static void activeGridview(String gvId)
    {

        try
        {
           /*  comment récupérer la référence de la page appelante ??? */
            GridView gv = (GridView)maPage.FindControl(gvId);
            gv.Visible = true;
        }
        catch { // TODO }
    }

merci pour voter aide

You talkin' to me ?

4 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour,

Quel interet ? Une nouvelle instance de l'objet Page est créé à chaque requête.

Lors de l'utilisation de PageMethods il me semble que tu dois avoir une méthode static, je suis quasi sur que cette requête ne créé pas d'instance de l'objet Page (pour des raisons évidentes de performances), si tu veux avoir une instance de ta page, tu peux faire un new, mais je ne vois pas l'interêt.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
7
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
25 mars 2008

Bonjour,

Mon probleme est que je n'arrive pas (ne sais pas) comment acceder depuis ma methode static aux controles de ma page.
J'aurais juste besoin d'activer des gridviews (long à charger) contenus dans des collapsiblepanel lors de l'expand.

comment faire ?  y a certainement une autre et meilleure facon de faire ...

merci bcp de m'aider !!! je suis vraiment bloqué
 

You talkin' to me ?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour,

ce n'est pas le role des pagemethods ! les pagemethods sont juste la pour communiquer pas entre le client et le serveur pas pour modifier la page. Utilise des UpdatePanels pour faie ce que tu veux .

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
7
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
25 mars 2008

ReBonjour,

Mon pb c'est que le CollapsiblePanelExtender ne permet pas de capturer un evenement OnClick ou OnExpand.
Il faut que je rajoute des Updatepanel à quel niveau ? j'ai une dizaine de CollapsiblePanels sur une page qui contiennent chacun un Gridview desactivé (car long à charger). je voudrais pouvoir activer le Gridview dynamiquennt lors de l'expand et ne pas avoir d'effet PostBack.
Comment faire pour detecter l'expand sur un CollapsiblePanel et mettre à jour son contenu ???

Je vais regarder comment fonctionnent les UpdatePanels

Merci

You talkin' to me ?