不能引发复合控件中子控件(mbtnAddNew)事件,望高手指点,谢谢。

问题描述

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Linq;usingSystem.Text;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;namespacecontrols{[DefaultProperty("Text")][ToolboxData("<{0}:ctlDBImgBtnsrunat=server></{0}:ctlDBImgBtns>")]publicclassctlDBImgBtns:WebControl{privateImageButtonmbtnAddNew;//按钮对应事件privatestaticreadonlyobjectmbtnAddNewHandler=newobject();protectedoverridevoidCreateChildControls(){Controls.Clear();mbtnAddNew=newImageButton();mbtnAddNew.AccessKey="A";mbtnAddNew.ToolTip="ALT+A";mbtnAddNew.Click+=newImageClickEventHandler(mbtnAddNew_Click);this.Controls.Add(mbtnAddNew);this.ChildControlsCreated=true;}protectedoverridevoidRenderContents(HtmlTextWriteroutput){EnsureChildControls();//output.Write(Text);mbtnAddNew.RenderControl(output);mbtnEdit.RenderControl(output);mbtnDel.RenderControl(output);mbtnSave.RenderControl(output);mbtnCancel.RenderControl(output);mbtnAudit.RenderControl(output);mbtnReject.RenderControl(output);mbtnQuery.RenderControl(output);mbtnPrint.RenderControl(output);mbtnExport.RenderControl(output);}protectedoverridevoidRender(HtmlTextWriterwriter){RenderContents(writer);}//[Bindable(true)]//[Category("Appearance")]//[DefaultValue("")]//[Localizable(true)]//publicstringText//{//get//{//Strings=(String)ViewState["Text"];//return((s==null)?String.Empty:s);//}//set//{//ViewState["Text"]=value;//}//}/////<summary>/////设置按钮当前页类型/////</summary>//[Bindable(false)]//[DefaultValue(btnPageType.BASE)]//[Description("设置按钮当前页类型")]//publicbtnPageTypesetPageType//{//set//{//if(this.ViewState["PageType"]!=null)//{//this.ViewState["PageType"]=value;//}//else//{//this.ViewState.Add("PageType",value);//}//}//}#region新增按钮属性,方法及事件[Category("Appearance")][DefaultValue("")][Description("获取或设置新增按钮SkinID值")]publicstringbtnAddSkinID{get{EnsureChildControls();stringlSkinID=mbtnAddNew.SkinID;return(lSkinID==null)?string.Empty:lSkinID;}set{mbtnAddNew.SkinID=value;}}[Category("Appearance")][DefaultValue("")][Description("获取或设置新增按钮ImageUrl值")]publicstringbtnAddImgUrl{get{EnsureChildControls();stringlImgUrl=mbtnAddNew.ImageUrl;return(lImgUrl==null)?string.Empty:lImgUrl;}set{EnsureChildControls();mbtnAddNew.ImageUrl=value;}}[Category("Appearance")][DefaultValue("")][Description("获取或设置新增按钮访问权限值")]publicBooleanbtnAddNewAccess{get{objectlIsAccess=this.ViewState["btnAddNewAccess"];return((lIsAccess!=null)&&(lIsAccess.ToString().Trim().ToUpper()=="TRUE"))?true:false;}set{this.ViewState.Add("btnAddNewAccess",value);}}///<summary>///增加新增按钮客户端脚本///</summary>///<paramname="pKey">键名</param>///<paramname="pValue">值</param>publicvoidaddBtnAddNewScript(stringpKey,stringpValue){if(mbtnAddNew!=null){mbtnAddNew.Attributes.Add(pKey,pValue);}return;}///<summary>///移除新增按钮客户端脚本///</summary>///<paramname="pKey">键名</param>publicvoidremoveBtnAddNewScript(stringpKey){if(mbtnAddNew!=null){mbtnAddNew.Attributes.Remove(pKey);}return;}[Description("新增按钮事件")]publiceventImageClickEventHandlerbtnAddNewOnClick{add{Events.AddHandler(mbtnAddNewHandler,value);}remove{Events.RemoveHandler(mbtnAddNewHandler,value);}}voidmbtnAddNew_Click(objectsender,ImageClickEventArgse){btnAddNew_Click((ImageClickEventArgs)ImageClickEventArgs.Empty);}protectedvirtualvoidbtnAddNew_Click(ImageClickEventArgse){ImageClickEventHandlerlHandler=(ImageClickEventHandler)Events[mbtnAddNewHandler];if(lHandler!=null){lHandler(this,e);}}#endregion

解决方案

解决方案二:
}

时间: 2024-11-05 21:49:03

不能引发复合控件中子控件(mbtnAddNew)事件,望高手指点,谢谢。的相关文章

用户控件中子控件的事件在外部如何改变?

问题描述 各位大虾,请问,用户控件中子控件的事件在外部如何改变?现在要做一个通用的用户控件,比如一棵树放在面板里面.其他模块调用这个用户控件,但是不同模块中,对树控件的点击处理不同(假如业务处理代码很多,足够多,不能通过传递参数等手段解决),而在外部,给用户控件添加事件处理函数时貌似不能再改变数的事件处理函数了,只能编辑用户控件本身的事件函数.这样就导致用户控件并不通用..不知道是否可以做到在外部改变用户控件子控件事件?本人接触c#时间短,请各位指教! 解决方案 解决方案二:1.把自定义控件内的

ASP.NET用户控件返回事件的方法

asp.net|控件 ASP.NET用户控件一般适用于产生相对静态的内容,所以没有builtin的事件支持.本文讨论用户控件返回事件的方法. 假定用户控件(UserControl.ascx)中包含按钮控件AButton,希望实现按AButton按钮时,包含该用户控件的页面可以接收到事件.为此,小鸡射手在用户控件和页面的代码中分别作了处理. UserControl.ascx.cs中的处理: 1. 定义public的事件委托,如ClickEventHandler; 2. 在UserControl类中

ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇

好了,我们之前以前开发一个控件.而且也添加了属性,开发也很规范,但是那个控件还差最后一点 :添加事件. ASP.NET的开发都是事件驱动的,现在我们就来为控件添加事件.在说事件之前,希望大家对C#的语法 要熟悉,对委托很事件要懂. 其实定义事件的步骤很简单: 1.声明一个委托. 2.定义一个携带事件信息的类. 3.定义事件4.定义一个通事件发生后,通知其他对象的方法首先来理清一下我们的思路: 1.在下拉框中选中一个值,并且在输入框中也输入相应的值. 2.我们在页面点击"提交"按钮,按钮

JS实现OCX控件的事件响应示例

 JS支持OCX控件的事件(event),当OCX控件定义的事件发生时,JS可以捕获该事件并对事件进行相应的处理. 个人理解,其实就是事件的响应由谁来完成,OCX控件自身肯定是可以实现的,JS提供的这种机制使JS也可以完成OCX控件事件的响应. 简单举例如下: 首先在OCX控件中添加自定义事件(预定义事件同理,如鼠标点击等,没亲自试,感觉原理应该是一样的), 事件应该是属于窗口的,所以在Ctrl类上单击右键,Add->Add Event,如下图: 在打开的对话框中输入事件名称,例如OnChang

JavaScript调用Activex控件的事件的实现方法_javascript技巧

书写成这样: <SCRIPT type="text/javascript" FOR="activexID" EVENT="onXXXevent()" > // js 处理具体内容. </SCRIPT> 当acitveX控件 onXXXevent()事件被触发时,调用此方法. 如果一个半个的话还好说,几十个这样的函数,把我的页面占据的满满的.况且在VS2008中,"设置选定内容格式化"总是提示:"

软件-vb.net 动态生成的控件,事件也动态加,怎么做呢?

问题描述 vb.net 动态生成的控件,事件也动态加,怎么做呢? 我现在做一个软件,想把下面一排的快捷按钮也做成动态生成的,也就是让用户自己选择(已存入数据库),动态按钮的事件要使用上面菜单的单击事件,如何写这样的动态事件呢?addhandler xx addressof xxx 我会使用,但是我在主界面加载的时候快捷按钮是用户自定义设置的,每次可以读出来用户设置了哪个菜单作为快捷按钮,就是无法使用菜单的事件,求大家帮帮忙. 绑定事件我会 AddHandler Button1.Click Add

在一个activity里如何监听另一个xml里的控件的事件

问题描述 在一个activity里如何监听另一个xml里的控件的事件 比如我有两个xml:main.xml和main1.xml 我在一个activity里setcontentView(R.layout.main) 而我想在这个activity里监听main1.xml里一个button按钮的点击事件,我应该怎么做? 求大神指导.(试过了LayouInflater拿到了main1.xml里button的id,但是设置onclicklister后系统没有响应点击事件) 解决方案 直接绑定监听是做不到的

按钮-C# 如何在一个窗体内执行另外一个窗口的一个控件的事件

问题描述 C# 如何在一个窗体内执行另外一个窗口的一个控件的事件 问题具体描述是:在Form1里面点击一个按钮,可以执行另外一个Form2里一个按钮对应的事件.像一个登陆界面,一个测试网络的界面,我要点登陆界面的登陆键,可以直接开启测试网络界面一个测试键对应的事件. 我实验过,如果把测试网络界面的测试键对应的事件设法移植到登陆键,很容易造成代码的冗杂,很难看懂.鄙人学识浅薄,还望提点,是否有优化的方案去解决这个问题. 解决方案 这个可以使用 委托 解决. 解决方案二: 用委托, 自定义事件htt

django-html中后台获取的数据如何通过控件的事件传递给script的响应函数中

问题描述 html中后台获取的数据如何通过控件的事件传递给script的响应函数中 我在页面的中写了一个函数,这个函数用settimeout函数来定时执行一些东西.</p> <p>然后在页面的Page_Load中读取了一个XML文件,请问我该怎么样才能把Page_Load中读取的信息传递给<Script>中的这个函数?</p> 解决方案 你说得不清不楚的.你说的后台是什么后台?php? jsp? asp.net? 还是说你没搞清楚后台.前端概念~~ 如果是后