Asp.Net/C#-如何获取嵌套在中继器中的Label控件的文本?

Asp.Net/C#-如何获取嵌套在中继器中的Label控件的文本?,c#,asp.net,repeater,C#,Asp.net,Repeater,我正试图获取位于中继器内的标签文本,但我不断得到NullPointerException 所有的数据都来自数据库,并且都是正确的 当我点击LinkButton时,我想将标签文本用于下一位代码 Aspx页面: <asp:Repeater ID="RepeaterDepartmentParent" runat="server"> <ItemTemplate> <div id="outerDiv" class="col-

我正试图获取位于中继器内的标签文本,但我不断得到
NullPointerException

所有的数据都来自数据库,并且都是正确的

当我点击LinkButton时,我想将标签文本用于下一位代码

Aspx页面:

   <asp:Repeater ID="RepeaterDepartmentParent" runat="server">
       <ItemTemplate>
                <div id="outerDiv" class="col-lg-3 col-xs-6" runat="server">
                        <!-- small box -->
                        <div>
                            <div class="inner">

                                <p>
                                   <%# DataBinder.Eval(Container.DataItem, "Department_Namestr")%>
                                </p>
                            </div>


                            <asp:Label ID="lblDepartmentId" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Department_Idint")%>' Visible="true"></asp:Label>

                            <asp:LinkButton ID="linkChildDepartment" CommandName="Click" runat="server" CssClass="small-box-footer" OnClick="linkChildDepartment_Click">More info<i class="fa fa-arrow-circle-right"></i></asp:LinkButton>

                        </div>
                </div><%--<%-- ./col -->--%>
       </ItemTemplate>
       </asp:Repeater>

如何正确引用链接按钮标签文本?

您可以使用
NamingContainer
属性获取
RepeaterItem
的引用。从那里可以很快找到您的标签:

protected void linkChildDepartment_Click(Object sender, EventArgs e)
{
    LinkButton linkChildDepartment = (LinkButton) sender;
    RepeaterItem item = (RepeaterItem) linkChildDepartment.NamingContainer;
    Label myLabel = (Label)item.FindControl("lblDepartmentId");
     // ...
}

您可以使用
NamingContainer
属性获取
RepeaterItem
的引用。从那里可以很快找到您的标签:

protected void linkChildDepartment_Click(Object sender, EventArgs e)
{
    LinkButton linkChildDepartment = (LinkButton) sender;
    RepeaterItem item = (RepeaterItem) linkChildDepartment.NamingContainer;
    Label myLabel = (Label)item.FindControl("lblDepartmentId");
     // ...
}

哦,谢谢你,伙计。它工作得很好@蒂姆·施梅尔特罗,谢谢你,伙计。它工作得很好@tim Schmelter可能重复“是”,但这让我在“您需要设置属性OnItemDataBound=“myFunction”这一行中感到困惑,我不想使用OnItemDataBound。。如果你在那里看到答案,我们不需要使用它。我们只需要使用NamingContainer就可以了。可能是的重复,但这让我在“您需要设置属性OnItemDataBound=“myFunction”这一行上感到困惑,我不想使用OnItemDataBound。。如果你在那里看到答案,我们不需要使用它。我们只需要使用NamingContainer即可。