How to access .Net element on Master page from a Content page?是否可以从 我有一个ListView,它在"母版"页面的导航区域中列出了人的名字。在将一个人添加到ListView数据绑定到的表中之后,我想更新ListView。 下面是我想做的一个示例,但编译器错误显示
GIS.master-ListView所在的位置
GISInput_People.aspx-使用GIS.master作为其主页 GISInput_People.aspx.cs
在C#.Net中解决此类问题的最佳方法是什么? 我相信您可以使用this.Master.FindControl或类似的方法来做到这一点,但是您可能不应该-它要求内容页面对母版页的结构了解太多。 我建议使用另一种方法,例如在内容区域中触发一个事件,使主机可以监听并在触发时重新绑定。 假定该控件在母版页上称为" PeopleListView"
但是@palmsey更正确,特别是如果您的页面可能有多个母版页的情况。解耦它们并使用一个事件。 选项1:您可以创建母版页控件的公共属性
在内容页面上访问它,例如
选项2:
内容页面上的 :
选项3: 这些方法不是那么有用,但是如果您只想使用一些有限的和预定义的控件,它会有所帮助 要记住的是以下ASP.NET指令。
MSDN参考 通过创建对母版页的强类型引用,在引用this.Master时将为您提供帮助。然后,您可以引用ListView而不需要进行CAST。 您可以使用代码this.Master.FindControl(ControlID)来访问所需的控件。它返回控件的引用,以便更改生效。在每种情况下都不可能触发事件。 假设您的母版页名为MyMaster:
编辑:由于默认情况下PeopleListView将被声明为受保护的,因此您需要将其更改为public,或者创建一个公共属性package器,以便可以从页面访问它。 |