ASPX:代码

  

<asp:repeater id="repeater" runat="server">

     

<headerTemplate></headerTemplate>

     

<itemtemplate></itemtemplate>

<footerTemplate> <asp:literal id=findme runate=server> </footerTeplate>

  

</asp:repeater>

我所寻找的是源代码,能够找到一个数据转发的页脚中的控制。林熟悉基本“的FindControl”当我做了数据绑定或寻找该网页本身的控制,但我如何才能找到一个数据转发的页脚模板?

中的控制

这甚至可能吗?如果是的话我如何能请得到一些帮助,

再次感谢所有!!!

[更新]

我需要能够将数据绑定后进行此操作

有帮助吗?

解决方案

Protected Sub Repeater1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles Repeater1.ItemDataBound
    If e.Item.ItemType = ListItemType.Footer Then
        Dim Lit As Literal = CType(e.Item.FindControl("findme"), Literal)
    End If
End Sub

其他提示

有多种方法,你可以做到这一点,确切的方法取决于当你想访问控制上。

如果您的DataBind时想的那样,简单地做项目数据绑定里面以下。

if(e.Item.ItemType == ItemType.Footer)
{
    Literal findMe = (Literal)e.Item.FindControl("findMe");
    //Your code here
}

如果你想在另一个时间点进行查找,访问直放站的项目集合,然后找到“页脚”项目,并从项目,你可以找到的控制。

<强>更新

根据你的笔记添加,您可以通过枚举项集合做到这一点,下面是与具有myRepeater的ID的中继器的例子。

foreach (RepeaterItem item in myRepeater.Items)
{
    if (item.ItemType == ListItemType.Footer)
    {
        Literal findMe = (Literal)item.FindControl("findMe");
        //Do your stuff
    }
}

我认为你必须检查ListItemType在ItemDataBound事件处理程序。您可以检查页眉或页脚,然后使用FindControl方法来访问控制。

Foreach (RepeaterItem item in myRepeater.Controls)

这将更好地工作,为项目集合不包含页眉和页脚

如果您需要获得页脚的之后的的DataBind(这是OP来,似乎是想),那么你可以使用以下内容:

RepeaterItem item= (RepeaterItem)myRepeater.Controls[myRepeater.Controls.Count - 1];
if (item.ItemType == ListItemType.Footer) {
    Literal findMe = (Literal)item.FindControl("findMe");
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top