begin process at 2012 05 28 13:49:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Web 2.0

 > 

Ajax

 > 

UpdatePanel & Control


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

UpdatePanel & Control

jeudi 19 février 2009 à 14:06:04 | UpdatePanel & Control

pierro01

Bonjour,

J'ai une page contenant un ContentPlaceHolder dans lequel il y a un UpdatePanel dans lequel on trouve une GridView.
<ContentPlaceHolder id='CPH'>
    <UpdatePanel id='UP'>
       <GridView id='GV'>
    </UpdatePanel>
</ContentPlaceHolder>


En gros j'essai de choper en aveugle (sans en connaitre le nom) un control.
Lorsque que je fais :
     (GridView)CPH.FindControl("GV")),
j'obtiens bien le control.

Par contre si je fais :
     (GridView)CPH.Controls.OfType<GridView>().First(),
je n'obtiens rien, personne au bout du fil.

Je ne me laisse pas démonter, je tente :
      UpdatePanel UP = (UpdatePanel)CPH.Controls.OfType<UpdatePanel>().First(),
j'ai l'UpDatePanel, viens ensuite :
      (GridView)UP.ContentTemplate.Controls.OfType<GridView>().First(),
et là c'est le drame ... rien non plus !!!


Par contre
      (GridView)CPH.Controls.OfType<GridView>().First(),
fonctionne si je sors la GridView de l'UpdatePanel ...

Quelqu'un pourrait m'expliquer ????

vendredi 20 février 2009 à 15:10:46 | Re : UpdatePanel & Control

pierro01


Non ? personne ne viendra sur son cheval blanc me délivrer ? (faut que j'arrête les Disney moi).

vendredi 20 février 2009 à 21:44:55 | Re : UpdatePanel & Control

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonjour,

as tu regardé la documentation de OfType ? cette méthode ne permet pas ce que tu veux ! (GridView)cph.FindControl("GV") est la seule solution. Cependant, je ne vois pas pourquoi tu utilises un FindControl.


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
lundi 23 février 2009 à 11:05:47 | Re : UpdatePanel & Control

pierro01

Bonjour,

Merci pour ta réponse ...

J'ai besoin du FindControl parce que je suis dans une classe perso., pas dans le code de la page ...
L'utilisation du OfType aurait pu m'éviter de nommer les controls à utiliser, la règle étant : "tu prends le premier qui passe sans te soucier de son nom" !!!

Mais justement, dans la doc du <OfType> je ne vois pas pourquoi ça fonctionne en dehors de l'UpdatePanel et pas dedans !!!!

Cdt
lundi 23 février 2009 à 11:58:01 | Re : UpdatePanel & Control

jesusonline

Membre Club Administrateur CodeS-SourceS
Si tu regardes la doc de OfType (http://msdn.microsoft.com/en-us/library/bb360913.aspx) ca te dit que cela te caste une collection en un autre type, si par exemple tu as un Object[] qui ne contient que des Person alors le OfType te retournera un IEnumerable<Person>. OfType fonctionne avec un curseur (yield return) puisque derriere tu fais un .First() tu ne cast que le premier element de ta collection. quand tu es dans l'updatePanel le premier élément que tu cast est le bon, quand tu es en dehors de l'updatepanel c'est pas le cas donc boom.


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
lundi 23 février 2009 à 13:11:51 | Re : UpdatePanel & Control

pierro01


Nous sommes d'accord, sauf sur la fin, dans mon exemple c'est même le contraire !

Je reprends mon premier schéma :
<ContentPlaceHolder id='CPH'>
    <UpdatePanel id='UP'>
       <GridView id='GV'>
    </UpdatePanel>
</ContentPlaceHolder>
Si je fais :
UpdatePanel UP = (UpdatePanel)CPH.Controls.OfType<UpdatePanel>().First();
(GridView)UP.ContentTemplate.Controls.OfType<GridView>().First();
la deuxième instruction plante.
Il trouve bien l'UpdatePanel dans le ContentPlaceHolder, mais pas le GridView dans l'UpdatePanel !!!


Si j'ai :
<ContentPlaceHolder id='CPH'>
    <GridView id='GV'>
</ContentPlaceHolder>
L'instruction :
(GridView)CPH.Controls.OfType<GridView>().First();
fonctionne !


Mais dans la doc de OfType je ne vois pas de restriction sur l'UpdatePanel.

Alors c'est un problème purement AJAX ????

En tout cas merci de ton aide.

lundi 23 février 2009 à 13:46:20 | Re : UpdatePanel & Control

jesusonline

Membre Club Administrateur CodeS-SourceS
Ajax n'a rien à voir la dedans.

La méthode OfType n'est pas du tout fait pour ce que tu veux ! si tu veux récuperer le premier control, tu fais un .controls[0] puis un cast, si tu veux récuperer le premier controls de type gridview tu fais un .Where(c => typeof(c) == typeof(GridView)).First(); mais OfType ne sert pas à ca !

Regarde quelle est le premier controle de ContentTemplates.Controls et tu auras la réponse, je ne serais pas étonné de voir qu'il s'agisse d'un LiteralControl.


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
lundi 23 février 2009 à 14:29:47 | Re : UpdatePanel & Control

pierro01

Ahhh tu vas trop vite pour moi !!!

T'as mis le doigt dessus, je veux récupérer la première gridview qui se trouve dans l'updatepanel.

Par contre je suis désolé mais je tu m'as perdu avec ton :
".Where(c => typeof(c) == typeof(GridView)).First();"

Tu l'aurais pas en version dummy ?

Merci
lundi 23 février 2009 à 21:02:34 | Re : UpdatePanel & Control

jesusonline

Membre Club Administrateur CodeS-SourceS
renseigne toi sur les lambda expression de C#3.

En C#2 ca s'écrit comme ca :

.Where(delegate(Control c){
    return typeof(c) == typeof(GridView);
}).First();


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
mardi 24 février 2009 à 08:27:25 | Re : UpdatePanel & Control

pierro01

OK, je me renseigne, si ça marche je t'épouse

Merci bien en tout cas


Cette discussion est classée dans : control, controls, gridview, updatepanel, cph


Répondre à ce message

Sujets en rapport avec ce message

Récupérer control Gridview [ par gstrit ] Bonjour,J'ai d'énormes problèmes pour accéder à un control dans un gridview. Dans la plupart des cas, la méthode findcontrol fonctionne mais j'arrive [Erreur] Ajax + export GridView vers Excel [ par EMSIEN ] salut tout le monde,j'ai un soucis lorsque j'utilise l'UpdatePanel dans une page ou j'exporte le contenu d'un GridView vers Excel, en enlevant l'Updat Ajout de controls [ par elpens ] Bonjour, Voilà quelques temps que j'ai ce problème, et je n'arrive pas à la resoudre...J'aimerais ajouter plusieurs control ascx dans un autre contr actualiser un control d'une autre page ? [ par superkiller ] bonjour,jutilise un gridview pour lister des données contenu dans une bdd access. ds cette jé un bouton ajouter qui ouvre une autre page qui permet d' Update GridView avec un UpdatePanel et un Timer [ par fabienfs ] Bonjour,Tout d'abord, joyeux noël ! Je n'arrive pas à faire un update des données se trouvant dans ma gridview avec un UpdatePanel et un Timer en Ajax Multi UpdatePanel [ par fredspv ] Bonjour,J'ai un ptit probleme avec l'utilisation de 2 UpdatePanel.Le premier permet d'inserer des champs dans une base.Le second affiche les données d onmouseover et updatepanel [ par gzitoun ] Bonjour,j'ai un petit souci: J'utilise un gridview dans un updatePanel. Le gridview est mis a jour lorsque je clique sur des boutons radio.L'une des c disparition des control créer dynamiquement [ par mimildi ] Bonjour a tous,Voila je crée en code-behind des controls de type texbox dynamiquement via un PlaceHolderTous ce passe bien,je vois mes controls,je pe GridView [ par sbleuze ] SlutJ'ai un "Control User" dans lequel j'ai une balise panel contenant un gridview. Ce "Control User" est utilisé dans une page aspx classique.Le grid GridView: Changer le comportement de ses controls [ par sspizer ] Bonjour,J'ai actuellement un GridView qui contient qui contient une textbox:asp</


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,030 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales