我怎样才能找到一个数据转发的页脚模板控制
-
10-07-2019 - |
题
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");
}
不隶属于 StackOverflow