begin process at 2012 05 27 15:35:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

Autre

 > 

Castage Automatique???


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

Castage Automatique???

jeudi 8 juin 2006 à 11:26:40 | Castage Automatique???

Coolpix08

Bonjour voila encore une question sur les types

J'ai réussi à lister tous mes controls, à prendre le type Control comme base pour n'importe quel type.Label ou Bouton

mais maintenant jaimerais une solution pour caster automatiquement suivant le type du Control

Voila ma fonction :

    public System.Web.UI.Control ValueOf(String it,ref System.Web.UI.Control Lab)
    {
      String tmp=ValueOf(it);
      if (tmp!="null")
      {
        if (Lab is Label) ((Label)Lab).Text=tmp;
        if (Lab is Button) ((Button)Lab).Text=tmp;
        if (Lab is RequiredFieldValidator) ((RequiredFieldValidator)Lab).Text=tmp;
      }
      return Lab;
    }

que jaimerais changer en :

    public System.Web.UI.Control ValueOf(String it,ref System.Web.UI.Control Lab)
    {
      String tmp=ValueOf(it);
      if (tmp!="null")
      {
        ((Lab.GetType())Lab).Text=tmp; // pour caster n'importe quel Control automatiquement
      }
      return Lab;
    }


GetType me renvoie bien le type du control mais le problème est que le castage ne prend pas le type Type dans les parenthèse, d'ailleur je ne sais meme pas quel est le type de la variable dans les ( )

Si quelqu'un a une idé, il serait le bien venu!
jeudi 8 juin 2006 à 11:55:44 | Re : Castage Automatique???

Coolpix08

Pendant que je suis dans les questions...
On fait commen pour passer directement d'un Label (par exemple) à son type Control

Comme ca je pourais utiliser cette fonction directement en passant également un Label
Parce que j'ai essayé

Label Labb1;

ValueOf("aaa",ref (Control)Labb1);

mais il me fait une erreur...
Alors j'aimerai savoir si il y a une fonction qui retourne le control
Pareil j'aimerai ne pas etre obliger de passer par un control temporaire...
Genre :

Control tmp;
tmp=(Control)Labb1;
ValueOf("aaa",ref tmp);

...

jeudi 8 juin 2006 à 13:51:14 | Re : Castage Automatique???

jesusonline

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Bonjour,

Si tu veux vraiment faire ca, renseigne toi au niveau de la reflection et des méthodes SetProperty/GetProperty voici le code pour faire ce genre de choses

Personne p = newPersonne();

Type
t = p.GetType();
if (t.GetProperty("Name") != null)
{
    PropertyInfo prop = t.GetProperty("Name");
    if (prop.CanWrite)
        prop.SetValue(p,
"DURAND", null);
}
Console.WriteLine(p.Name);
pour la deuxieme question je te conseil de revoir l'héritage ... car je ne comprend vraiment pas la question, si ton objet hérite de objectbase alors objectbase possede toutes les propriétés publics (sauf cas particulier)


Cyril - MVS - MCP
jeudi 8 juin 2006 à 17:53:10 | Re : Castage Automatique???

Coolpix08

salut
merci davoir repondu
pour la première question je vais i réfléchir demain mais pour la 2eme, je connais les héritages et tt ce ki est derriere, c'est pour ca également que j'avait fait un exemple en dessous.
mais le petit plus par rapport a d'habitude est le passage par référence ( ref )qui n'accepte pas...et je ne comprend pas pourquoi...

Il suffit de coder pour le voir.

Merci pour la premiere solution!

Je vois ca demain pour le reste
Bonne soiré
jeudi 8 juin 2006 à 20:33:41 | Re : Castage Automatique???

jesusonline

Membre Club Administrateur CodeS-SourceS
Je ne comprend pas trés bien pourquoi tu veux mettre ref ? perso j'ai du l'utiliser ou une deux fois puisque la plupart des types sont des types par référence. par exemple ce code

Personne p = new Personne();
toto(p);
console.writeLine(p.firstName); // retournera bien Cyril !

public void toto(Personne p)
{
   p.firstName = "Cyril";
}

Pour ce que j'avais pas compris peut etre que j'ai mal interpreté les choses "Alors j'aimerai savoir si il y a une fonction qui retourne le control" tu voulais savoir comment retourner le control par reference (ce que j'explique plus haut) et non pas une fonction de l'objet TextBox qui retournerais l'objet Control ?


Cyril - MVS - MCP
vendredi 9 juin 2006 à 11:50:18 | Re : Castage Automatique???

Coolpix08

ouuuuuiiiiiiiinnnnnnnnnnnn!!!!!!!!!!!!!!!
Mais C'est pas possible de perdre autant de temps comme ca!!!

Bon ben désolé pour le dérangement...mais bon je suis encore accrocher fortement au C++ donc forcement les passages par référence par défaut....j'ai connu ca que en VB et je suis pas trop fan...
Maintenant je le serait
En plus jvien de voir que j'ai pas du tt besoin de le caster dans ma fonction "(Control)Label1" il le fait automatiquement

Merci de m'avoir éclaicit sur ce point, je crois que j'ai gagné ma journé...

Mais alors...il sert a quoi le "ref"???!!! A poser des problèmes inutiles?

Et je viens d'essayer les Reflection à l'instant...pendant que je fait le post
je connaissais pas du tout, c'est super comme truc, on peut aller rechercher l'objet et ses méthodes à l'arrache comme ca, ca assure!
Et comme je liste tout mes control ben si il a pas la propriété ca renvoie null directe, ca évite les erreurs c'est bien foutu!

Par contre...j'avait un vieux bug incompréhensible quand je les utilisais...
Il m'écrivait en haut de page la premiere valeur qu'il trouvait quand je voulait assigner...mais c'est vrai que je liste TOUT les controls de la page donc  forcement dedans yavait également les LiteralControl qui on la propriété Text propre à la page
Juste un if bien placé et c'est reparti

D'ailleur j'ai intéret à faire attention à ca dans les autres pages au cas ou...

C'est vraiment nikel, c'est exactement ce que je voulait!

Je te remercie beaucoup!!!
vendredi 9 juin 2006 à 11:54:41 | Re : Castage Automatique???

jesusonline

Membre Club Administrateur CodeS-SourceS
Ben tu peux trés bien vérifier que le type du control soit un button ou un literal ...

toutes les propriétés ne sont pas des variables par référence les structures ainsi que les types primitifs sont passé par valeur (int, string, ...) voila à quoi sert ref :)

ref >> [ Lien ] 


Cyril - MVS - MCP
vendredi 9 juin 2006 à 12:01:16 | Re : Castage Automatique???

Coolpix08

Ouais c'est ce que je faisais avec "IS" mais justement je voulait éviter de passer par lui avec tout les types différent de control donc maintenant ca

Ah oki!!! Donc en faite j'étais quand meme dans le vrai. Ils ont gardé la méthode du C++ sauf pour les autres types.
Ben voila, j'y voit plus clair maintenant.
Ca ce trouve tu vient encore de m'éviter 1heure de Google dans le futur...

RererereMerci!

On se voit surement au prochain post! LOL!


Cette discussion est classée dans : system, type, control, lab, tmp


Répondre à ce message

Sujets en rapport avec ce message

Control creer dynamiquement [ par alk ] Alors voila je declare un System.Web.UI.Controlsdans un fichier aspx.cs et je souhaite le voir apparaitre sur ma WebForms cependant je recois une erre Comment attribuer imageUrl aà une image à aprtir d'un "input type=file" ou d'un "FileUpload" control ? [ par lamarty ] Bonjour ,J'aimerais avoir votre aide pour accomplir deux petits trucs sur une application .net . La premiere : J'ai un control input type file dans un [ASP.NET][C#] récupérer un événement click d'un custom web control [ par outcast_fr ] Bonjour, j'ai créé un petit custom web control (pas de user control) composé d'un label et d'un bouton. Mon but c'est de récupérer l'événement associé Web user control dans un gridview, postback problème Container.DataItem [ par Leghvon ] Bonjour,Je dois dire d'habite je trouve en cherchant mais là ! je suis sur un os. Merci d'avance.Ma question est très simple j'ai un gridview où je pl Validation Control [ par blueangel ] Salut tout le monde,voici mon codeid<font color="#0000ff" size [VB.NET] Suppression d'un UserControl dynamiquement [ par Glumph ] Bonjour à tous,J'essaie de créer un formulaire dynamiquement, à partir d'un usercontrol.J'ai une page "Main" possédant un Panel et un bouton Ajouter. Que mettre pour "enumType As System.Type" [ par aloisio11 ] Bonjour, Je voudrais récupérer les attributs d'un fichier avec ce code Dim vAtt As IO.FileAttributesDim vFile As New IO.FileInfo("MonFichier") v Échec du chargement de viewstate [ par titimzora ] bonjour tout le monde,voilà un message qui s'affiche qd j'essaye d'ouvrir ma page web je comprend pas d'où vient l'erreur alors que j'ai rien toucher une exception de type "System.OutOfMemoryException" a été levée [ par allahkarim ] Bjr,J'ai un problème très urgent S.V.PLors de l'hébergement d'un site web ASP.Net et aprés un test assez fréquent de ce dernier,un message d'erreurse WEB SERVICE [ par bibou1985 ] bonjour, je voudrais passer à une methode (precedure)dans mon fichier de web service un parametre de type controle windows forms (datagridview, listv


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,466 sec (3)

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