动态创建button 控件及事件。事件无法触发

问题描述

如题。代码如下:动态产生buttonforiasinteger=0to10DimibtnTempAsNewImageButtonibtnTemp.ID=String.Format("btn{0}",i)ibtnTemp.ImageUrl=CStr(IIf(MyBase.IsEnglishCulture,"../../Image/btn_delete_EN.gif","../../Image/btn_delete_HK.gif"))AddHandleribtnTemp.Click,AddressOfMe.ibtnTemp_ClickdisplayContainer.Controls.Add(ibtnTemp)next事件代码ProtectedSubibtnTemp_Click(ByValsenderAsObject,ByValeAsSystem.Web.UI.ImageClickEventArgs)DimibtnAsImageButton=CType(sender,ImageButton)EndSub注:产生button是写在PAGE_LOAD里面,没有加ISPOSTBACK找了一天了。请帮助小妹找到问题所在。

解决方案

解决方案二:
上面的IsEnglishCulture是自己写的方法。根据中英文显示不同的图片displayContainer是后台动态创建的一个DIV.在事件设置断点。但是怎么也不执行。参考了一些。依然没有解决多谢好心人帮忙
解决方案三:
经测试以下代码没有问题设置ibtnTemp.ImageUrl=""后请考虑displayContainer.Controls.Add(ibtnTemp)是否存在问题ProtectedSubPage_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.LoadForiAsInteger=0To10DimibtnTempAsNewImageButtonibtnTemp.ID=String.Format("btn{0}",i)ibtnTemp.ImageUrl=""AddHandleribtnTemp.Click,AddressOfMe.ibtnTemp_ClickMe.Master.FindControl("Form1").Controls.Add(ibtnTemp)NextEndSubProtectedSubibtnTemp_Click(ByValsenderAsObject,ByValeAsSystem.Web.UI.ImageClickEventArgs)DimibtnAsImageButton=CType(sender,ImageButton)Response.Write(ibtn.ID)EndSub

解决方案四:
谢谢楼上的大哥我不知道是不是页面太复杂的原因。我的这个页面继承了一个基类pagebase后台动态加了很多控件。pageload里面运行DisplayFriends()代码如下PrivateSubDisplayFriends()divGroup.InnerHtml=String.Empty'GetallmyfriendsDimdtFriendsAsDataTable=bFriends.GetFriendsList(MyBase.SessionUser.UserID)DimdvFriendsAsNewDataView(dtFriends)'DisplayuserdefinedgroupsDimdtGroupAsDataTable=bGroup.GetMyGroups(MyBase.SessionUser.UserID)'Displaydefaultgroup--"MyFriends"dvFriends.RowFilter="GroupIDISNULL"DiminnerDivAsNewHtmlGenericControl("div")IfdvFriends.Count>0ThenDisplayGroupMemberTitle(0,GetString("MyFriends"),innerDiv)DisplayGroupMember(dvFriends,Nothing,dtGroup,innerDiv)EndIf'Nouserdefinedgroups'case,returnsubIfdtGroupIsNothingThenReturnEndIf'Loopallgroupstodisplayallthefriends'namesForiAsInteger=0TodtGroup.Rows.Count-1dvFriends.RowFilter=String.Format("GroupID={0}",dtGroup.Rows(i).Item("GroupID"))DimgroupNameAsString=CStr(dtGroup.Rows(i).Item("GroupName"))DimgroupIDAsInteger=CInt(dtGroup.Rows(i).Item("GroupID"))innerDiv=NewHtmlGenericControl("div")DisplayGroupMemberTitle(groupID,groupName,innerDiv)DisplayGroupMember(dvFriends,groupID,dtGroup,innerDiv)NextEndSub然后在调用了DisplayGroupMemberTitle(groupID,groupName,innerDiv)和DisplayGroupMember(dvFriends,groupID,dtGroup,innerDiv)主要的是后面一个。几乎所有的控件在这个里面被创建。代码如下:PrivateSubDisplayGroupMember(ByRefdvGroupAsDataView,ByRefgroupIDAsInteger,ByRefdtGroupAsDataTable,ByRefdisplayContainerAsHtmlGenericControl)ForrowAsInteger=0TodvGroup.Count-1DimimgTempAsNewImagedisplayContainer.Controls.Add(imgTemp)imgTemp.ID=String.Format("img{0}",row)imgTemp.Width=60imgTemp.Height=80IfdvGroup.Item(row).Item("Photo")IsNothingOrdvGroup.Item(row).Item("Photo")IsDBNull.ValueThenimgTemp.ImageUrl="~/Photo/noface.jpg"ElseimgTemp.ImageUrl=String.Format("~/Photo/{0}",dvGroup.Item(row).Item("Photo"))EndIfDimhlkTempAsNewHyperLinkdisplayContainer.Controls.Add(hlkTemp)hlkTemp.ID=String.Format("hkl{0}",row)hlkTemp.Width=CType("120",Unit)IfMe.SessionLanguage="EK"ThenhlkTemp.Text=CStr(dvGroup.Item(row).Item("NicKName_EN"))ElsehlkTemp.Text=CStr(dvGroup.Item(row).Item("NicKName_HK"))EndIfhlkTemp.NavigateUrl=String.Format("ViewProfile.aspx?userid={0}",dvGroup.Item(row).Item("UserTwoID"))DimddlTempAsNewDropDownListddlTemp.ID=String.Format("ddl{0}",row)ddlTemp.AutoPostBack=TrueAddHandlerddlTemp.SelectedIndexChanged,AddressOfMe.ddlTemp_SelectedIndexChangeddisplayContainer.Controls.Add(ddlTemp)IfNot(dtGroupIsNothing)ThenddlTemp.DataSource=dtGroup.DefaultViewddlTemp.DataTextField="GroupName"ddlTemp.DataValueField="GroupID"ddlTemp.DataBind()EndIfddlTemp.Items.Insert(0,GetString("MyFriends"))IfCStr(groupID)IsNothingThenddlTemp.SelectedIndex=0ElseddlTemp.SelectedValue=CStr(groupID)EndIfDimibtnTempAsNewImageButtonibtnTemp.ID=String.Format("btn{0}",row)ibtnTemp.ImageUrl=CStr(IIf(MyBase.IsEnglishCulture,"../../Image/btn_delete_EN.gif","../../Image/btn_delete_HK.gif"))AddHandleribtnTemp.Click,AddressOfMe.ibtnTemp_ClickdisplayContainer.Controls.Add(ibtnTemp)Diminnerbr2AsNewHtmlGenericControl("/br")displayContainer.Controls.Add(innerbr2)NextEndSub内容有点多。但是都是一个道理请多家多看看。帮忙解决。
解决方案五:
怎么没有人回复我我找到问题了因为我的控件是在循环里面产生的。而这样的话无法触发事件。问题找到了。可是不知道是为何??感谢大家。快帮帮我吧。代码如下:ProtectedSubPage_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.LoadForjAsInteger=0To3DimlblTempAsNewLabelform1.Controls.Add(lblTemp)lblTemp.Text=j.ToStringForiAsInteger=0To3DimibtnTempAsNewImageButtonibtnTemp.ID=String.Format("ibtn{0}",i)ibtnTemp.ImageUrl=""AddHandleribtnTemp.Click,AddressOfMe.ibtnTemp_Clickform1.Controls.Add(ibtnTemp)NextNextEndSub无法触发下面的事件ProtectedSubibtnTemp_Click(ByValsenderAsObject,ByValeAsSystem.Web.UI.ImageClickEventArgs)DimibtnAsImageButton=CType(sender,ImageButton)Response.Write(ibtn.ID)EndSub

时间: 2024-09-14 09:01:21

动态创建button 控件及事件。事件无法触发的相关文章

asp.net 动态创建TextBox控件及状态数据如何加载_实用技巧

接着上文Asp.net TextBox的TextChanged事件你真的清楚吗? 这里我们来说说状态数据时如何加载的.虽然在Control中有调用状态转存的方法,但是这里有一个判断条件 if (_controlState >= ControlState.ViewStateLoaded) 一般的get请求这里的条件是不满足的. 复制代码 代码如下: internal enum ControlState { Constructed, FrameworkInitialized, ChildrenIni

ASP.NET 页面中动态增加的控件、添加事件第1/2页_实用技巧

要求:页面上有一个Add按钮,每点击一次该按钮,页面上动态创建一个WebPartZone! 提醒:WebPartZone只能在OnInit或之前才能创建,否则报异常! 大家都知道,按钮的点击事件是在RaisePostbackEvent时触发的,这意味着点击事件在OnLoad阶段之后才执行,远远落后于 OnInit阶段,而且ViewState在OnLoad时才准备好,OnInit以及之前的阶段根本就不能使用ViewState!如果试图在按钮点击事件里面创建WebPartZone等控件,唯一的后果就

updatepanel中通过后台创建Button控件问题

问题描述 想要通过ajax实现局部刷新效果.这是全部的页面布局这是期望的效果然后,在第④步,也就是点击后台生成的按钮的时候出问题了.问题描述:④点击按钮,updatepanel刷新,后台创建的按钮全部消失.经调试也不进入按钮绑定的事件.也就是变成这样:请问,这问题如何解决?或者,有什么其他方法,可以实现类似的局部刷新效果?功能是这样的:第一步,点击按钮,将数据库查询到的数据装进后台创建的span,最后全部装入页面div中,每条数据后面再创建一个Button.第二步,选择某条数据后的Button进

请问:自动生成的web控件如何处理级联事件

问题描述 问题:生成的控件分别是:标签1,下拉列表1,标签2,下拉列表2四个控件.如何挂接下拉列表1的SelectedIndexChanged事件,使得其值又控制下拉列表2的数据显示?比如,下拉列表1绑定的是省,下拉列表2绑定的是市,下拉列表1改变触发其SelectedIndexChanged改变下拉列表2的值. 解决方案 解决方案二:下拉的话可以用JS来实现数值的变化的这样还是不刷新的多好啊至于与后台交互的话正好可以用AJAX这样全省事了我做的一个例子不知道是不是你要的http://www.z

vb.net的Button控件

Button(按钮)控件一般接受鼠标单击事件被用来启动.中断或结束一个进程(相当于Visual Basic以前版本的CommandButton控件).单击Button控件时将调用已写入Click事件过程中的过程.Button控件在大多数Visual Basic应用程序中都会用到,用户可以单击按钮执行操作.单击时,按钮不仅能执行相应的操作,而且看起来与被按下和松开一样.Button控件在工具箱中的图标如图所示: 1.向窗体添加按钮 在应用程序中很可能要使用多个按钮.就象在其他容器控件上绘制按钮那样

JS脚本实现动态给标签控件添加事件的方法_javascript技巧

本文实例讲述了JS脚本实现动态给标签控件添加事件的方法.分享给大家供大家参考,具体如下: <!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"> &l

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

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

mfc-MFC 将button控件SetParent()到另一个窗口后,事件响应混乱问题

问题描述 MFC 将button控件SetParent()到另一个窗口后,事件响应混乱问题 现有:窗口A,里面有button1,按钮事件是AfxMessageBox(L""我是窗口A的按钮"");窗口B,里面有button1.按钮事件是AfxMessageBox(L""我是窗口B的按钮""); 使用以下代码将button1发送到窗口B里面去:this->GetDlgItem(IDC_BUTTON1)->SetPar

在Edi控件响应单击事件创建t对话框问题

问题描述 在Edi控件响应单击事件创建t对话框问题 我在Edit控件中响应单击事件然后创建模态对话框,可是关闭模态对话框的时候程序就崩溃了 代码如下: BOOL CBolg1Dlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class /*if (pMsg->hwnd == m_edit4.m_hWnd && pMsg->messa