Domanda

posso accedere al testo all'interno di una casella di testo nel mio ripetitore, ma sono in grado di tirare il valore di testo da un'etichetta all'interno del mio ripetitore. Il ripetitore è popolato da un datatable con la riga (x) essendo riempito da sqlreader (x), non so se questo fa la differenza. Non posso usare javascript per questo. Ho bisogno di accedere al valore etichetta dal codebehind.

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

è il markup

I può accedere a una casella di testo sulla stessa riga utilizzando:

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

e recuperare il TextBox.Text, ma utilizzando la stessa dichiarazione per l'etichetta mi dà {text = ""}.

Ho verificato che l'IDcliente di controllo che viene restituito con FindControl è corretto (featTable__ctl1_weiLabel)

Grazie per qualsiasi aiuto

È stato utile?

Soluzione

Puoi provare dichiarando l'etichetta in questo modo:

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

Altri suggerimenti

Si può anche provare a mettere in valore nella vostra etichetta dal codice dietro utilizzando il metodo databound. Lo trovo un po 'più facile per eseguire il debug e più pulita poi metterlo in 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top