首页 新闻 会员 周边 捐助

内容页访问母版页定义事件不可得

0
悬赏园豆:100 [待解决问题]

母版页HTML:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
    <div>
        <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
       
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>

母版页CS文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class MasterPage : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    public delegate void ButtonHandle(object sender, EventArgs e);
    public event ButtonHandle Button_Click;

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Button_Click != null)
        {
            Button_Click(sender, e);
        }
    }
}

内容页HTML:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 <%@ MasterType VirtualPath="~/MasterPage.master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
</asp:Content>

内容页CS:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_LoadComplete(object sender, EventArgs e)
    {
        Master.Button_Click+=
    }
}

报错:错误 1 “ASP.masterpage_master”不包含“Button_Click”的定义,并且找不到可接受类型为“ASP.masterpage_master”的第一个参数的扩展方法“Button_Click”(是否缺少 using 指令或程序集引用?) d:\我的文档\Visual Studio 2010\WebSites\WebSite6\Default.aspx.cs 12 16 d:\...\WebSite6\

注意:当我新建的是网站时会报错,但是,我新建的是ASP WEB应用程序时,这个做法就不会报错!

问题补充:

而且在内容页的CS文件中 竟然不认识,母版页定义的类名,比如我把母版页改成DDD.MASTER

在内容页中,打DDD,都不行,不认识这个类!

圆 豆的主页 圆 豆 | 初学一级 | 园豆:112
提问于:2013-03-29 12:09
< >
分享
所有回答(4)
0

你的模板是吧“网站”,这个模板中如果你用VirtualPath来指定的话,会有这个问题,好像它会动态生成一个类型。

你可以指定TypeName,我测试过是可以的

<%@ MasterType TypeName="MasterPage" %>
陈希章 | 园豆:2538 (老鸟四级) | 2013-03-30 08:05

不行的!晕,要申请博客才能开通上传图片!

支持(0) 反对(0) 圆 豆 | 园豆:112 (初学一级) | 2013-03-31 09:39
0

楼主,我试验了2种都可以,请确认你的website 内容页是不是加了

<%@ MasterType VirtualPath="~/MasterPage.master" %>

 

建议你重点研究下<%@ MasterType,跟这个有很大的关系

.! | 园豆:402 (菜鸟二级) | 2013-03-30 16:26

FINDCONTROLS,和这个我全试过了,我现在严重怀疑我的编译器VS2010 是不是坏了,经常性,我不保存,直接关电脑!

支持(0) 反对(0) 圆 豆 | 园豆:112 (初学一级) | 2013-03-31 09:41
0

结束吧!搞不清楚原因!

圆 豆 | 园豆:112 (初学一级) | 2013-04-01 08:12

知道原因了,我定义的母版页类无法加载

如:

Public class DDD : MasterPage
{
    protected ContentPlaceHolder ContentPlaceHolder1;
    protected HtmlForm form1;
    protected ContentPlaceHolder head;

    public DDD();

    protected HttpApplication ApplicationInstance { get; }
    protected DefaultProfile Profile { get; }

    protected void Page_Load(object sender, EventArgs e);

我定义的母版页无法体现出我放进去的控件和事件,这是为什么么,我的编译器还真是坏了,我日呀!

支持(0) 反对(0) 圆 豆 | 园豆:112 (初学一级) | 2013-04-01 12:05
0

母版页类无法加载

zhi++ | 园豆:487 (菜鸟二级) | 2013-04-10 20:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册