在我的页面中,我有两个嵌套的中继器,如下所示:
<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>
在第一个中,我有一个 LinkButton ,其中包含一个填充嵌套转发器的方法。关于数据的边界我没有问题,但我不知道如何获得正确的嵌套转发器来填充。在 GetObjectDetails 方法中,我该如何获取它?
答案 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");
}