带按钮的嵌套转发器

时间:2014-10-15 14:42:07

标签: asp.net repeater

在我的页面中,我有两个嵌套的中继器,如下所示:

<asp:Repeater runat="server" ID="rptStanze" OnItemDataBound="rptStanze_ItemDataBound">       
    <ItemTemplate>
        <div>
            <li class="datatable-item">
                <asp:LinkButton runat="server" ID="hypGetDetails" Text="Get Details" OnCommand="GetObjectDetails" />
                <div class="col2">DATE</div>
                <div class="col3">VISITORS</div>
            </li>      
            <li>
                <asp:Repeater runat="server" ID="rptDetails" OnItemDataBound="rptDetails_ItemDataBound">
                    <ItemTemplate>
                        <div class="subitem">
                            <div class="col2"><asp:Literal runat="server" ID="ltlDetTitle" /></div>
                            <div class="col3"><asp:Literal runat="server" ID="ltlDetViews" /></div>
                            <div class="col4"><asp:Literal runat="server" ID="ltlDetComments" /></div>
                        </div>                        
                    </ItemTemplate>
                </asp:Repeater>
            </li>
        </div>
    </ItemTemplate>
</asp:Repeater>

在第一个中,我有一个 LinkBut​​ton ,其中包含一个填充嵌套转发器的方法。关于数据的边界我没有问题,但我不知道如何获得正确的嵌套转发器来填充。在 GetObjectDetails 方法中,我该如何获取它?

1 个答案:

答案 0 :(得分:0)

Command处理程序中,其中一个参数是发送请求的按钮,通常称为&#34; sender&#34;。使用它,您只需找到被单击的按钮的容器,然后在该容器中找到转发器。

这是一个C#示例:

protected void GetObjectDetails(object sender, CommandEventArgs e) 
{
    LinkButton hypGetDetails = (LinkButton)sender;
    RepeaterItem ri = (RepeaterItem)hypGetDetails.NamingContainer;
    Repeater rptDetails = (Repeater)ri.FindControl("rptDetails");
}