Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

11 commentaire(s) de apacheswiss sur des sources sur tout CodeS-SourceS

Le : 04/07/2006 23:05:51
Source : RECUPERER L'INSTANCE D'UN CONTROL À PARTIR DE SON CLIENTID
et modifer le code
if (_clientID.Contains(child.ClientId)
{
     c = getControlFromClientIDInternal(child);
     if (c != null)
     {
          _clientID = string.Empty;
          return c;
     }
}


Le : 04/07/2006 22:55:56
Source : RECUPERER L'INSTANCE D'UN CONTROL À PARTIR DE SON CLIENTID
il doit manquer un return null a la fin du foreach (Control inexistant)


Le : 04/07/2006 22:48:53
Source : RECUPERER L'INSTANCE D'UN CONTROL À PARTIR DE SON CLIENTID
désolé (indentation)
je verrais un truc du genre:
ne sais pas si ca fonctionne, pas tester... merci de me dire mes erreurs... j'apprends tjs.


internal static Control getControlFromClientID(Page page, String ClientID)
{
    _clientID = ClientID;
    Control c = page.FindControl(ClientID);
    if (c != null)
       return c;
  
     return getControlFromClientIDInternal(page);
}
  
private static Control getControlFromClientIDInternal(Control Container)
{
    Control c;
    if (_clientID.Length > Container.ClientID.Length)
    {
         foreach (Control child in Container.Controls)
         {
             if (child.Controls.Count > 0)
             {
                 if (_clientID.Contains(child.ClientId)
                 {
                     getControlFromClientIDInternal(child);
                      
                 }
             }
         }
    }
    elseif(_clientID == Container.ClientID)
    {
        return container;
    
    }
    else
    {
        return null;
    }
}


Le : 04/07/2006 22:46:07
Source : RECUPERER L'INSTANCE D'UN CONTROL À PARTIR DE SON CLIENTID
je verrais un truc du genre:
ne sais pas si ca fonctionne, pas tester... merci de me dire mes erreurs... j'apprends tjs.


internal static Control getControlFromClientID(Page page, String ClientID)
        {
            _clientID = ClientID;
  
            Control c = page.FindControl(ClientID);
            if (c != null)
                return c;
  
            return getControlFromClientIDInternal(page);
        }
  
        /// <summary>
        /// Obtain a control from a container
        /// </summary>
        /// <param name="Container"></param>
        /// <returns>use recursivity</returns>
        /// <remarks>the _clientID params is extern to not put into stack the value each call : better performance</remarks>
        private static Control getControlFromClientIDInternal(Control Container)
        {
            Control c;
            if (_clientID.Length > Container.ClientID.Length)
            {
foreach (Control child in Container.Controls)
             {
                 if (child.Controls.Count > 0)
                 {
if (_clientID.Contains(child.ClientId)
                     {
    getControlFromClientIDInternal(child);
                       
                     }
}
                }
            }
    elseif(_clientID == Container.ClientID)
    {
return container;
    
            }
    else
    {
           return null;
    }
        }


Le : 04/07/2006 22:22:40
Source : RECUPERER L'INSTANCE D'UN CONTROL À PARTIR DE SON CLIENTID
excuse moi, mais c'est un exemple de quoi?
de comment construire l'Unique Id des enfant d'un contrôl web?

le but du code présenté au début n'est pa celui la..
le but du code présenté était de récupérer un control en ne connaissant que sont ID..
donc il faut trouver tous ces parent.. et sans requête SQL...

donc il faut d'abord bouclé les contrôle de ta page, pour troiver le "super parent"
et ensuite parcourir "tout" les enfants de ce contrôle et ne pas parcourir les enfant (du super parent) d'un contrôl s'il n'est pas dans l'unique ID du contrôle rechercher..


Le : 04/07/2006 21:39:24
Source : RECUPERER L'INSTANCE D'UN CONTROL À PARTIR DE SON CLIENTID
2 boucle en un peut plus compliquée.. tu es plus ou moins obligé de faire de la récursivité (arrétée a plusieures reprise) dans la branche trouvée..


Le : 04/07/2006 21:36:38
Source : RECUPERER L'INSTANCE D'UN CONTROL À PARTIR DE SON CLIENTID
désolé......
mais lors d'un return dans ta fonction recursive, tu sort de ta récursivité...
tu tu rappelle ta fonction, c'est récursif...

je ne vois pas ou tu évite...

je suis d'accord avec toi au sujet de l'arbre... si tu cherche d'abord la branche, et ensuite tu parcoours la branche, ce n'est plus récursif.. tu ne fais que 2 boucle.


Le : 04/07/2006 20:55:44
Source : RECUPERER L'INSTANCE D'UN CONTROL À PARTIR DE SON CLIENTID
je pense aussi...
moi je voulais juste débatre sur.
Et finalement, un vieux de la vielle m'a appris il y a bien longtemps que la récursivité pouvait être évitée si la dernière instruction est un return ;)

qui ne veut pas dire grand chose à part arrêter tout une fois qu'on a trouvé ce qu'on cherche...


Le : 04/07/2006 20:46:19
Source : RECUPERER L'INSTANCE D'UN CONTROL À PARTIR DE SON CLIENTID
si tu utilise la recursivité, c'est que tu n'as que le nom qui est sur la porte.. mais pas la rue.. donc pour trouver cette porte tu dois te taper toutes les rues


Le : 04/07/2006 20:44:33
Source : RECUPERER L'INSTANCE D'UN CONTROL À PARTIR DE SON CLIENTID
d'accord... mais si tu ne sais pas qui est le parent... tu dois te taper les quatre routes...



1


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.