2010-03-10 4 views
3

j'ai un datalist et dans son modèle d'en-tête j'ai un linkbutton.In mon dossier codebehind je l'ai écrit comme je l'ai toujours écrit:LinkButton dans un DataList

((LinkButton)(DataList1.FindControl("LinkButton1"))).Enabled = false; 

mais cela me donne l'erreur:

La référence d'objet n'est pas définie sur une instance d'un objet.

Comment puis-je accéder à ce lien?

+0

Pouvez-vous poster le balisage html? – orandov

Répondre

2

Vous devez utiliser FindControl() dans le modèle que vous utilisez (par exemple ItemTemplate)

1

Votre appel à FindControl ne trouve rien - vous devez vous assurer que quelque chose est trouvé avant de le lancer et d'essayer de l'utiliser.

Cette approche est plus sûr:

LinkButton linkButton 
    = DataList1.FindControl("LinkButton1") as LinkButton; 

if (linkButton != null) 
    linkButton.Enabled = false; 
+0

ok je l'ai fait et linkButton est null mais mon LinkButton1 est là. Que devrais-je faire? – erasmus

1

Si le LinkButton est intégré dans un récipient comme un groupe ou un autre contrôle, vous devrez atteindre l'intérieur de celui-ci. FindControl ne se recourt pas à travers les contrôles enfants de la collection.

Par exemple, vous pourriez avoir à faire quelque chose comme ça avec tout ce que la structure de contrôle imbriquée vous:

FindControl("Panel1").FindControl("LinkButton1").Enabled ... 
0

Essayez avec :

**LinkButton lnk = (LinkButton)e.Item.FindControl("LnkPager");** 

Commentaire :: LnkPager est un linkbutton Mon Datalist