从ASPX页面中的UserControls访问控件
本文关键字:UserControls 访问 控件 ASPX | 更新日期: 2023-09-27 18:27:18
如何在ASPX页面中从UserControls访问控件?例如:我想访问ASPX页面上用户控制中的网格视图。
请帮帮我。
试试这个:
GridView GridView1 = (GridView)WebUserControl1.FindControl("GridView1");
其中WebUserControl1是.aspx页上的使用控件ID。
希望这能有所帮助。。
最好的方法是在UserControl
中提供您可以访问的属性。
例如:
public GridView UserGrid
{
get
{
return GridView1;
}
}
但问题是你为什么需要这个。
经验法则:只暴露尽可能少的内容。这样,您的代码将是最健壮和可读的。因此,例如,最好暴露它的DataSource
,而不是完整的GridView
。
另一方面,如果您希望您的页面对UserControl中的事件作出反应,它应该提供自定义事件(例如UserDeleted),然后您的页面可以处理这些事件。
页面用户控制通信
因为控件现在在同一级别上彼此无关,所以必须使用父页面才能获得它
-
创建一个引用父页面的属性(控件通常所在的页面(可能由于控件的分层而有所不同)
-
在页面上创建一个引用网格所在用户控件的属性,或直接链接到该网格。
page.aspx
public UserControl UserGridControl
{
get;
set;
}
userControl.ascx
public Page ParentPage
{
get;
set;
}
示例调用:
首先实例化属性。之后,使用以下语句访问该控件中的任何内容(例如,我在这里使用了Foo(),用作伪方法,但似乎有人不清楚):
otherControl.ascx:
this.ParentPage.UserGridControl.Foo();
编辑:想要有一个直接的代码示例,以便仅从页面执行?见Tim Schmelters的回答。如果您也需要从另一个用户控件调用网格的方法。用我的。