无法从后面的代码访问转发器中的控件

Sha*_*uaz 3 c# asp.net repeater

我正在尝试从我的代码隐藏文件中访问asp转发器中的asp标签.这是我到目前为止所做的:

    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="LinqDataSource1" OnItemDataBound="outerFunction">
        <HeaderTemplate>
            <h1>Questions And Answers</h1>
        </HeaderTemplate>

        <ItemTemplate>
             <p style="background-color:Red; color:Yellow;"><%#Eval("QText") %> :::::::::</p>
            <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# setQID(Eval("QID"))%>' />

            <asp:Label ID="pageLabel" runat="server" Text="Label"></asp:Label>

             <asp:Repeater ID="Repeater1" runat="server" DataSourceID="LinqDataSource2">
                 <HeaderTemplate>

                 </HeaderTemplate>
                 <ItemTemplate>



                    <%# (GetAnswer(Eval("AnsQID"))) != 1 ? (displayAnswer(Eval("AText"))) : ""%>


                </ItemTemplate>

                <FooterTemplate>

                </FooterTemplate>

            </asp:Repeater>

            <span style="display:block; border-top:1px solid Gray;"></span>
        </ItemTemplate>
    </asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

*这是我背后的代码*

public void outerFunction(object sender, RepeaterItemEventArgs  e)
    {
       Label myLabel =  (Label) e.Item.FindControl("pageLabel");
       myLabel.Text = "HELLO World";
    }
Run Code Online (Sandbox Code Playgroud)

我正在尝试显示问题和答案.对于每个问题,可以有多个答案.这就是我在嵌套转发器控件中拥有它的原因.现在我只需要知道我怎么能说,例如在外部转发器中有一个"div"元素,并将内部转发器内的每个答案绑定到该父div.

谢谢 !

Ica*_*rus 9

您的代码看起来不错,除非您没有检查您所在的行类型:

public void outerFunction(object sender, RepeaterItemEventArgs  e)
 {
      if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
      {
         Label myLabel =  (Label) e.Item.FindControl("pageLabel");
         myLabel.Text = "HELLO World";
      }
 }
Run Code Online (Sandbox Code Playgroud)