0

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

谢谢你的帮助

4

2 回答 2

1

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

<asp:label id="weiLabel" runat="server" Text='<%#DataBinder.Eval(Container, "DataItem.weiLabel")%>' / >
于 2010-10-26T16:06:51.650 回答
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
于 2010-10-26T16:30:52.553 回答