为了账号安全,请及时绑定邮箱和手机立即绑定

关于母版页的按钮事件

标签:
JavaScript

解决这个问题,首先要明白一件事情,masterpage只是一个容器,它将要装载很多网页,Div是放在哪一个网页内,要设法让masterpage知道。比如P1.aspx页内有Div id为Div1, P2.aspx也有一个Div id 为Div1。masterpage不知道你要显示那页的Div1.  Div只想要显示与否,由谁来控制它不管,可以由page或是masterpage都有可能去控制它。

因此,你可以写一个接口,它有一个方法并带一个参数:

5acf07280001405b00110016.jpgISetable using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for ISetable
/// </summary>
namespace Insus.NET
{
    public interface ISetable
    {
        void Setting(bool show);
    }
}

 

如果是要P1的Div需要控制,那就在P1.aspx.cs实作这个接口,当然如果是P2.aspx,那就是P2.aspx.cs实作接口。

5acf07280001405b00110016.jpgView Code using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;

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

    }

    public void Setting(bool show)
    {
        this.Div1.Visible = show;
    }
}

 

最后,你可以确定由谁来控制它。是masterpage还是page,那就在这容器的按钮Click事件中写:

5acf07280001405b00110016.jpgView Code using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;

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

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        ISetable d = (ISetable)this.Page;
        d.Setting(true);
    }
}

 

 演示:


 

Demo代码:

http://download.cnblogs.com/insus/ASPDOTNET/mpEvent.rar

 

以下内容添加于2012-03-09 17:10:

重构如下,把两个铵钮整合为一个,效果:。


 

click事件: 

5acf07280001405b00110016.jpgView Code protected void Button1_Click(object sender, EventArgs e)
    {
        Button btn = (Button)sender;
        ISetable d = (ISetable)this.Page;

        switch (btn.Text)
        {
            case "开":
                btn.Text = "关";
                d.Setting(true);
                break;
            case "关":
                btn.Text = "开";
                d.Setting(false);
                break;
        }
    }

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消