Невозможно получить Label.text в ASP.Net Repeater с помощью FindControl - PullRequest
0 голосов
/ 26 октября 2010

Я могу получить доступ к тексту в текстовом поле в моем репитере, но я не могу извлечь текстовое значение из метки в моем репитере.Ретранслятор заполняется из таблицы данных, где строка (x) заполняется sqlreader (x), я не знаю, имеет ли это значение.Я не могу использовать JavaScript для этого.Мне нужно получить доступ к значению метки из кодовой области.

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

- это разметка

Я могу получить доступ к текстовому полю в той же строке, используя:

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

иполучить textbox.text, но использование того же оператора для метки дает мне {text = ""}.

Я проверил, что clientID элемента управления, возвращаемого с findcontrol, является правильным (featTable__ctl1_weiLabel)

Спасибо за любую помощь

Ответы [ 2 ]

1 голос
/ 26 октября 2010

Можете ли вы объявить ваш лейбл так:

<asp:label id="weiLabel" runat="server" Text='<%#DataBinder.Eval(Container, "DataItem.weiLabel")%>' / >
0 голосов
/ 26 октября 2010

Вы также можете попробовать ввести значение в метку из кода, используя метод с привязкой к данным. Я нахожу это немного легче для отладки и очистки, чем положить его в 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
...