从ASPX页面中的UserControls访问控件

本文关键字:UserControls 访问 控件 ASPX | 更新日期: 2023-09-27 18:27:18

如何在ASPX页面中从UserControls访问控件?例如:我想访问ASPX页面上用户控制中的网格视图。

请帮帮我。

从ASPX页面中的UserControls访问控件

试试这个:

GridView GridView1 = (GridView)WebUserControl1.FindControl("GridView1");

其中WebUserControl1是.aspx页上的使用控件ID。

希望这能有所帮助。。

最好的方法是在UserControl中提供您可以访问的属性。

例如:

public GridView UserGrid
{
     get
     {
         return GridView1;
     }
}

但问题是你为什么需要这个。

经验法则:只暴露尽可能少的内容。这样,您的代码将是最健壮和可读的。因此,例如,最好暴露它的DataSource,而不是完整的GridView

另一方面,如果您希望您的页面对UserControl中的事件作出反应,它应该提供自定义事件(例如UserDeleted),然后您的页面可以处理这些事件。

页面用户控制通信

因为控件现在在同一级别上彼此无关,所以必须使用父页面才能获得它

  1. 创建一个引用父页面的属性(控件通常所在的页面(可能由于控件的分层而有所不同)

  2. 在页面上创建一个引用网格所在用户控件的属性,或直接链接到该网格。

page.aspx

public UserControl UserGridControl
{
     get;
     set;
}

userControl.ascx

public Page ParentPage
{
     get;
     set;
}

示例调用:

首先实例化属性。之后,使用以下语句访问该控件中的任何内容(例如,我在这里使用了Foo(),用作伪方法,但似乎有人不清楚):

otherControl.ascx:

this.ParentPage.UserGridControl.Foo();

编辑:想要有一个直接的代码示例,以便仅从页面执行?见Tim Schmelters的回答。如果您也需要从另一个用户控件调用网格的方法。用我的。