2010-11-26 4 views
0

J'essaie de désactiver/cacher le bouton lnkDelete qui est situé à l'intérieur du contrôle de répéteur. J'ai utilisé cette méthode, mais un message d'erreur s'affiche: La référence d'objet n'est pas définie sur une instance d'un objet. Je ne suis pas sûr de ce qui semble être le problème. Je suis capable d'utiliser intellesense pour montrer la propriété Visible du contrôle, cette preuve pour moi que j'ai la possibilité de contrôler à l'intérieur du répéteur, n'importe qui peut aider. grâcecontrôle de répéteur d'accès et de modifier leurs propriétés

protected void rptCAP_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
     var lnkDel = e.Item.FindControl("lnkDelete").Visible = false; 
     } 

Bob blanc

+1

Que voulez-vous dire par le contrôle du relais? Aussi ce n'est pas le code VBA. –

+0

Ressemble à ASP.NET/C# –

+0

Pensez-vous que nous lisions votre avis sur l'environnement dans lequel vous codez? D'après les balises, on s'attendrait à ce que vous programmiez dans Access VBA, mais ce n'est clairement pas le cas. DONNEZ-NOUS DE L'AIDE ICI SI VOUS VOULEZ LE RETOURNER. –

Répondre

1

vous devez ajouter une instruction if pour vérifier si le itemtype est un élément ou un élément alternatif et non-tête élément ou élément pied de page:

If (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){ 
var lnkDel = e.Item.FindControl("lnkDelete").Visible = false; 

    } 
0

Bob il semblerait que vous essayez de définir la propriété Visible même lorsque FindControl ne retourne pas un contrôle.

Vous devriez probablement faire quelque chose comme

var lnkDel = e.Item.FindControl("lnkDelete"); 
if (lnkDel != null) 
    lnkDel.Visible = false; 
Questions connexes