如何处理内容页面中的母版页按钮事件?

Kas*_*hef 7 c# asp.net webforms master-pages

关于同样的问题不仅仅是问题和文章,而是我还有一些相关的问题,希望得到一些答案.

  1. 我听说有两种方法可以找到按钮并添加处理程序或使用界面(从这里检查两种方法).你建议哪一种?

  2. 如果你能用一些代码来说明'Interface'选项,那么在接口文件的类中,当我尝试继承它时,它在页面中是不可读的!

Jak*_*art 8

第二个方法是IMO更好.第一个选择是将页面耦合到特定的母版页,这并不好.

所有文件都放在同一个文件夹中.

IPageInterface.cs:

namespace CallFromMasterPage
{
    public interface IPageInterface
    {
        void DoSomeAction();
    }
}
Run Code Online (Sandbox Code Playgroud)

Default.aspx.cs:

namespace CallFromMasterPage
{
    public partial class Default : System.Web.UI.Page, IPageInterface
    {
        public void DoSomeAction()
        {
            throw new NotImplementedException();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Site.Master.cs:

namespace CallFromMasterPage
{
    public partial class SiteMaster : System.Web.UI.MasterPage
    {
        protected void Button1_Click(object sender, EventArgs e)
        {
            IPageInterface pageInterface = Page as IPageInterface;
            if (pageInterface != null)
            {
                pageInterface.DoSomeAction();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

还有其他方法.例如,您可以通过事件经纪人发布活动.