2009-02-17 10 views
0

Je travaille sur un contrôle serveur ASP.NET et j'ai un problème. Peut-être que je supervise quelque chose, je ne sais pas.Problème de propriété du contrôle serveur ASP.NET (?)

Quoi qu'il en soit:

public string Name 
{ 
    get 
    { 
     String s = (String)ViewState["name"]; 
     return ((s == null) ? String.Empty : s); 
    } 

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



protected override void RenderContents(HtmlTextWriter output) 
{ 
    txt.ID = Name; // Name here exists 
    txt.Text = DateTime.Now.ToShortDateString(); 

    txt.RenderControl(output); 

    output.Write(someName(someValue)); 

} 

public string GetCalendarString(string date) 
{ 
    some code... 
    // Name property is null 
} 

« RenderContents » utilise la propriété « Nom » pour définir le nom de commande puis appelle la fonction « UnNom » et fonction « UnNom » utilise également la propriété « Nom », mais quand je le lance , la propriété 'Nom' dans la fonction 'someName' est vide, bien que dans 'RenderContents' ce ne soit pas le cas.

Gremlins, ou il me manque quelque chose?

+0

Avez-vous un exemple complet? –

+0

C'est un peu gros à poster ... – lopkiju

+0

Alors isolez les bits qui sont pertinents. Les chances sont que tout en isolant les bits pertinents, vous trouverez le problème. Vous n'avez certainement pas encore donné suffisamment d'informations. –

Répondre

0

Cela va être difficile de répondre parce que sans débogage il n'y aura aucun moyen de dire quelles forces extérieures ont manipulé les données.

Depuis Name est une propriété publique tout de contrôle qui a accès pourrait le mettre à null à tout moment avant votre appel à GetCalendarString. Aussi, si vous appelez GetCalendarString avant que ViewState soit chargé, cette valeur ne sera pas disponible. Je suspect que vous essayez d'obtenir Name de ViewState avant qu'il ait chargé, mais encore une fois c'est un problème mieux résolu par le débogage.

Soit dit en passant - here is a great image qui montre le cycle de vie ASP.NET et vous aider à déterminer si vous essayez d'utiliser ViewState avant qu'il ne soit chargé à partir du Request.

+0

Étrange. Je viens de le déboguer et le champ Nom à l'intérieur d'une fonction n'était pas nul. Puis j'ai rendu la propriété Name, et elle n'était pas nulle non plus. Je ne sais pas ce qui s'est passé. En tout cas, merci à tous pour votre aide et votre temps. – lopkiju