无法使用FindControl在ASP.Net Repeater中获取Label.text

时间:2010-10-26 15:48:41

标签: asp.net text label repeater findcontrol

我可以在转发器中的文本框中访问文本,但我无法从转发器中的标签中提取文本值。 转发器是从数据表中填充的,行(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 =“”}。

我已经验证了findcontrol返回的控件的clientID是否正确(featTable__ctl1_weiLabel)

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您可以尝试声明这样的标签:

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

答案 1 :(得分:0)

您还可以尝试使用数据绑定方法从后面的代码中将值放入标签中。我发现它更容易调试和清理,然后将其放入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
相关问题