2010-10-26 29 views
0

Je peux accéder au texte d'une zone de texte dans mon répéteur, mais je n'arrive pas à extraire la valeur textuelle d'une étiquette dans mon répéteur. Le répéteur est rempli à partir d'un datatable avec la ligne (x) étant rempli par sqlreader (x), je ne sais pas si cela fait une différence. Je ne peux pas utiliser javascript pour cela. J'ai besoin d'accéder à la valeur de l'étiquette à partir du codebehind.Impossible d'obtenir Label.text dans ASP.Net Repeater à l'aide de FindControl

<asp:label id="weiLabel" runat="server"> 
    <%#DataBinder.Eval(Container, "DataItem.weiLabel")%> 
</asp:label> 

est le balisage

Je peux accéder à une zone de texte sur la même ligne en utilisant:

featTable.Controls(1).Controls(1).FindControl("costText") 

et récupérer le TextBox.Text, mais en utilisant la même déclaration pour l'étiquette me donne { text = ""}.

J'ai vérifié que le clientID de contrôle qui est retourné avec FindControl est correct (featTable__ctl1_weiLabel)

Merci pour toute aide

+0

vous pouvez trouver une instance d'un contrôle sur une ligne arbirtary comme celui-ci (C#) 'étiquette weiLabel = (label) de featTable.Items [ someIndex] .FindControl ("weiLabel"); ' – lincolnk

Répondre

1

Pouvez-vous essayer de déclarer votre étiquette comme ceci:

<asp:label id="weiLabel" runat="server" Text='<%#DataBinder.Eval(Container, "DataItem.weiLabel")%>'/> 
+0

Merci! Belle prise. – user331976

0

Vous pouvez également essayer de mettre la valeur dans votre étiquette à partir du code derrière en utilisant la méthode databound. Je trouve un peu plus facile à déboguer et plus propre, puis le mettre dans le code html

Private Sub repPoliList_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles repPoliList.ItemDataBound 

    If (e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem) Then 

     Dim dr As DataRowView = CType(e.Row.DataItem, DataRowView) 

     Dim weiLabel As System.Web.UI.WebControls.Label= CType(e.Item.FindControl("weiLabel"), System.Web.UI.WebControls.Label) 
     weiLabel.text= dr("ColumnFromDatabase").toString 


    End If 

End Sub