有没有比 FindControl() 更好的方法来访问 ITemplate 中的控件?

发布于 2024-08-20 13:28:44 字数 176 浏览 6 评论 0原文

当控件添加到 UpdatePanel 时,仍然可以从包含页面的后面代码访问它。这是如何实现的?自定义控件开发人员可以这样做吗?

换句话说,如果我使用 ITemplate 接口开发模板控件,是否有一种方法可以将其连接起来(就像 UpdatePanel 似乎那样),以便也可以从包含的页面访问其中包含的任何控件(以声明方式)?

When a control is added to an UpdatePanel, it can still be accessed from the code behind of the containing page. How is this achieved? Can custom control developers do the same?

In other words, if I develop a template control using the ITemplate Interface, is there a way to wire it up (like the UpdatePanel seems to) so that any controls contained within (declaratively) can be accessed from the containing page also?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深爱不及久伴 2024-08-27 13:28:44

您可以在 ITemplate 属性上添加 TemplateInstanceAttribute为了实现这一点,它具有将控件提升到页面级别的效果:

[TemplateInstance(TemplateInstance.Single)]
public ITemplate AnonymousTemplate {
  get { ... }
  set { ... }
}

来自 MSDN:

TemplateInstanceAttribute 类允许您将模板属性标记为允许单个或多个实例化的属性。仅允许单个实例化的模板可以引用其中包含的控件。 ZoneTemplate 属性是只能实例化一次的属性示例。

You can add a TemplateInstanceAttribute on your ITemplate property to achieve this, it has the effect of promoting the controls to page level:

[TemplateInstance(TemplateInstance.Single)]
public ITemplate AnonymousTemplate {
  get { ... }
  set { ... }
}

From MSDN:

The TemplateInstanceAttribute class allows you to mark a template property as one that allows single or multiple instantiations. A template that only allows a single instantiation can have the controls that are contained inside of it referenced. The ZoneTemplate property is an example of a property that can be instantiated only one time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文