zoukankan      html  css  js  c++  java
  • 关于Asp.net事件,如何在触发子控件的事件时,同步触发父页面的事件

    对页面引用自定义控件后,通过绑定自定义事件,页面绑定子控件的事件,在子控件做了某些修改动作后,如何同步操作父页面的方法;下面我煮了个栗子,同学们可以来尝一尝试一试

    a.aspx 引用 UserControl :ucReportViewCore.ascx(b控件)

    b控件声明事件变量ReportUseDefaultTemplateChanged,并添加方法OnReportUseDefaultTemplatChanged判断ReportUseDefaultTemplateChanged变量不为空时,执行事件变量ReportUseDefaultTemplateChanged

          public event EventHandler<EventArgs<bool>> ReportUseDefaultTemplateChanged;//a
            protected void OnReportUseDefaultTemplatChanged(bool checkedValue)
            {
                if (ReportUseDefaultTemplateChanged != null)
                {
                    ReportUseDefaultTemplateChanged(this, new EventArgs<bool>(checkedValue));
                }
            }

    a页面,在Oninit事件中绑定b控件的事件变量ReportUseDefaultTemplateChanged,并将a页面上的一个事件赋值给b控件的事件变量

       protected override void OnInit(EventArgs e)
        {
         ucReportViewCore.ReportUseDefaultTemplateChanged += new EventHandler<CIPACE.Model.CustomReport.EventArgs<bool>>(ucReportViewCore_ReportUseDefaultTemplateChanged);
       }
        void ucReportViewCore_ReportUseDefaultTemplateChanged(object sender, CIPACE.Model.CustomReport.EventArgs<bool> e)
            {
                if (IsPortalReport)
                {
                    int modifIndex = RowIndex;
                    if (modifIndex >= 0)
                    {
                        if (ReportSetting != null)
                        {
                            ReportSetting.Reports[modifIndex].UseDefaultTemplate = e.Parameter;
                        }
                    }
                }
            }

    自定义EventArgs类

    namespace CIPACE.Model.CustomReport
    {
        [Serializable]
        public class EventArgs<T> : EventArgs
        {
            private T param;
            public T Parameter
            {
                get { return param; }
            }
            public EventArgs(T parameter)
            {
                this.param = parameter;
            }
        }
    }

     

  • 相关阅读:
    判断安卓或是IOS
    安卓、IOS内嵌H5的相互通信
    原生js tab选项卡粗略封装
    关于抓包
    vue学习的第一天——vue-router的相关使用
    关于jQuery插件封装的总结
    mvc生成静态页
    C#调用java代码
    汉字转16进制,汉字转10进制
    Model 类型为dynamic或者list<dynamic>
  • 原文地址:https://www.cnblogs.com/yonsy/p/6627546.html
Copyright © 2011-2022 走看看