2010-11-16 6 views
1

Je regarde les contrôles serveur pour la première fois, et j'ai une question sur ce code:contrôle serveur de base

[Bindable(true)] 
[Category("Appearance")] 
[DefaultValue("")] 
[Localizable(true)] 
public string Text 
{ 
    get 
    { 
     String s = (String)ViewState["Text"]; 
     return ((s == null) ? "[" + this.ID + "]" : s); 
    } 

    set 
    { 
     ViewState["Text"] = value; 
    } 
} 

Je ne comprends pas pourquoi ce contrôle retourne le [id] ou le texte c'est réglé. Je ne vois pas comment cela a un sens. Est-ce juste pour la démonstration ou y a-t-il une raison pour retourner l'identifiant?

Merci

+1

Si ViewState ["Text"] == null alors la première ligne dans le get lèvera une exception. Vous ne pouvez pas convertir null en chaîne. – Scottie

Répondre

0

Cela n'a aucun sens pour moi. Si je demande du texte, je m'attends à ce qu'il n'y ait pas de texte pour obtenir une chaîne vide ou null.

4

Il ressemble à un exemple qui montrera l'ID des contrôles si la propriété de contrôles .Text n'a pas été définie.

Ceci est un peu une procédure de "débogage" pour montrer que le contrôle est en réalité rendu même s'il n'a pas de jeu de données dans sa propriété Text.

+0

+1 Vous êtes sur. – Lazarus

0

Si rien n'a été défini pour la propriété Text, dans ViewState avec d'autres mots, this.ID est renvoyé.

Cela n'a pas vraiment de sens, mais il affichera du texte dans le volet Propriétés de Visual Studio et sur le concepteur.

Questions connexes