问题描述
如题。代码如下:动态产生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