在 asp.net 中,如何从 usercontrol 获取自定义 webcontrol 的引用?
Posted
技术标签:
【中文标题】在 asp.net 中,如何从 usercontrol 获取自定义 webcontrol 的引用?【英文标题】:In an asp.net, how to get a reference of a custom webcontrol from a usercontrol? 【发布时间】:2011-01-30 23:59:27 【问题描述】:我有一个包含自定义 web 控件和用户控件的页面。我需要在 usercontrol 类中引用 webcontrol。因此,我在页面类中将 webcontrol 声明为 public。但是,当我执行“this.Page.”时,我没有看到智能感知提供的列表中列出的 web 控件。很可能,我错过了一些东西。
在asp.net页面中,如何从usercontrol中获取自定义webcontrol的引用?
请指教。谢谢 潘卡伊
【问题讨论】:
【参考方案1】:您可能最好在 UserControl 上创建一个接受 WebControl 参数的方法。
然后让页面将它们连接在一起。
拥有一个依赖于 Page.FindControl 的用户控件对我来说似乎很像一个 hack。
例如在你的 UserControl 中有这样的东西:
public void SetWebControl(MyWebControl control)
// Do whatever
在你的页面中你会这样做:
override OnInit()
this.MyUserControl1.SetWebControl(MyWebControl1);
都是c的伪代码:-)
【讨论】:
【参考方案2】:如果你知道 webcontrol 的 ID,你可以这样做:
Control ctrl = Page.FindControl (ID_of_the_webcontrol);
【讨论】:
【参考方案3】:尝试使用 FindControl 方法控制页面:
Control yourUserControl = this.Page.FindControl("yourControlsID");
Page 类是您的页面的实例,它是基类System.Web.UI.Page
的实例。因此,除非您将其转换为您的页面类的类型,否则您无法使用 Page 获取公共属性。
【讨论】:
以上是关于在 asp.net 中,如何从 usercontrol 获取自定义 webcontrol 的引用?的主要内容,如果未能解决你的问题,请参考以下文章
如何从后面的代码中隐藏和显示 asp.net 中的 asp:buttons?
如何从 ASP.NET 核心 mvc 向 asp.net 核心中的 Web API 发出 PUT 请求?
如何通过 C# ASP.net 从 SQL Server 中的文本框中存储日期
如何在 asp.net 中使用 JSON 和 JQuery 从 WebMethod 返回 DataTable?