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

miglouf Messages postés 7 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 25 mars 2008 - 13 mars 2008 à 17:45
miglouf Messages postés 7 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 25 mars 2008 - 14 mars 2008 à 12:26
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

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
13 mars 2008 à 19:16
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
0
miglouf Messages postés 7 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 25 mars 2008
14 mars 2008 à 09:51
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 ?
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
14 mars 2008 à 11:41
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
0
miglouf Messages postés 7 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 25 mars 2008
14 mars 2008 à 12:26
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 ?
0
Rejoignez-nous