搜索Google后,我发现了一种从用户控件调用母版页功能的方法:
这是一个很好的方法,但我不知道我可以用这种方式调用母版静态函数。
另一种方法是:
// this is also good.
((MyMaster)this.Page.Master).MyFunction();
但我听说这也可以通过一个活动来完成。
1)有人能告诉我如何通过事件从用户控件调用母版页功能吗? 2)另外,如何通过上面解释的通用接口方式调用母版静态函数。
答案 0 :(得分:3)
我认为最好让您的用户控件引发一个事件并让您的页面监听该事件,然后调用母版页功能。控件不应该知道实现它们的事情 - 包括页面是否有母版页。
答案 1 :(得分:1)
在您的内容页面中,使用MasterType指令生成主类型。然后,您可以在内容页面中使用公开的Master属性而不进行强制转换。如果要从内容中调用master中的静态函数,则需要使用master的代码隐藏类的名称来调用它(因为它是静态的)
内容页面:
<%@ Page MasterPageFile="~/dir1/master1.master" ....... %>
<%@ MasterType VirtualPath="~/dir1/master1.master" %> <!--This technique might change between .net versions. This is testing on 3.5-->
内容page.cs
this.Master.nonStaticFunc();
dir1_master1.staticFunc();