如何在中继器页眉或页脚中查找控件
我想知道如何在 Asp.Net Repeater 控件的 HeaderTemplate 或 FooterTemplate 中找到控件。
我可以在 ItemDataBound 事件上访问它们,但我想知道如何在之后获取它们(例如检索页眉/页脚中输入的值)。
注意:我在找到答案后将这个问题发布在这里,只是为了记住它(也许其他人可能会发现这很有用)。
I was wondering how one would find the controls in the HeaderTemplate or FooterTemplate of an Asp.Net Repeater control.
I can access them on the ItemDataBound event, but I was wondering how to get them after (for example to retrieve a value of an input in the header/footer).
Note: I posted this question here after finding the answer just so that I remember it (and maybe other people might find this useful).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
正如评论中所述,这仅在您对中继器进行数据绑定后才有效。
在页眉中查找控件:
在页脚中查找控件:
使用扩展方法
As noted in the comments, this only works AFTER you've DataBound your repeater.
To find a control in the header:
To find a control in the footer:
With extension methods
更好的解决方案
您可以在 ItemCreated 事件中检查项目类型:
Better solution
You can check item type in ItemCreated event:
您可以在 ItemCreated 事件上获取控件的引用,然后在以后使用它。
You can take a reference on the control on the ItemCreated event, and then use it later.
在 Repeater 中找到控件(页眉、项目、页脚)
Find control into Repeater (Header, Item, Footer)
这是在 VB.NET 中,如果需要,只需转换为 C#:
并且使用起来很简单:
尝试使其与页脚和项目控件一起使用 =)
This is in VB.NET, just translate to C# if you need it:
And use it easy:
Try to make it work with footer, and items controls too =)
执行此操作的最佳且简洁的方法是在 Item_Created 事件中:
The best and clean way to do this is within the Item_Created Event :
查找并投射控件。 (基于 Piyey 的 VB 回答)
Finds and casts the control. (Based on Piyey's VB answer)
对于 ItemDataBound
For ItemDataBound