2010-10-30 2 views
2

Je suis en train d'utiliser cette solution pour accéder aux éléments dans un élément de menu telerik:contrôles dans un telerik contrôle pas accessible à partir du fichier .cs

Code ascx:

<asp:Label ID="DivLeave" runat="server"></asp:Label> 

Dans le fichier ascx.cs Je lance ce code pour désactiver l'étiquette asp

RadMenuItem expenses = RadMenu1.FindItemByText("Expenses"); 
    Label DivLeave = (Label)expenses.FindControl("DivLeave"); 
    DivLeave.Visible = false; 

mais je reçois cette erreur lorsque je tente d'exécuter le code:

{"Object reference not set to an instance of an object."} 

Quelqu'un peut-il me dire comment résoudre ce problème. J'ai vraiment besoin d'exécuter ce côté serveur code entourant le code ci-dessus fait un peu de côté serveur de travail et cela va tenir dans une manière ordonnée ...

Amitiés

+0

sur quelle ligne obtenez-vous l'erreur? le 2ème ou le 3ème? – jasper

Répondre

0

En effet, le nom de votre étiquette n'est pas " DivLeave "lorsque le code HTML de votre formulaire est rendu. Comme il se trouve dans un contrôle utilisateur, il s'agira d'une combinaison du nom du contrôle utilisateur sur la page, puis de "DivLeave". Vous devriez être capable de voir le nom en regardant le code derrière. Aussi pourquoi ne pouvez-vous pas simplement référencer DivLeave.Visible sans utiliser le FindControl? C'est un contrôle ASP.NET avec l'attribut de serveur runat, il devrait donc être disponible pour vous.

+0

Le problème avec le référencer comme DivLeave.Visible est qu'il est à l'intérieur d'un contrôle telerik. Pour une raison quelconque, il ne me permet pas de faire cela quand il est à l'intérieur du contrôle ... – Rup

+0

Donc, si c'est un élément RadMenu que vous essayez de cacher pouvez-vous faire quelque chose comme dépenses.FindItemByText ("Leave"). Visible = faux ? – bechbd

0

Pouvez-vous faire un quickwatch pour l'objet 'dépenses' dans Visual Studio et voir si 'DivLeave' est disponible? Il peut arriver que:

  1. Le contrôle d'étiquette est disponible mais à un niveau différent dans l'objet.
  2. Le contrôle d'étiquette lui-même n'est pas ajouté aux dépenses des parents.

De même, il serait judicieux de faire une vérification nulle des dépenses et des objets DivLeave avant d'y accéder.

Questions connexes