CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

[下跪求助]关于动态生成出来的按钮调用,为什么我这里只有最后一个按钮生效呢?

楼主jiaqingchen(蓝色星期天)2004-05-03 10:28:48 在 .NET技术 / ASP.NET 提问

'原意是对每一组按钮都进行处理,每一个选择题都对应地出现提示的,    
    '结果却只有最后一组按钮才有效地出现提示,前面几组按钮都失效了    
      '请问这里对循环体内的不同组件的命名及调用该如何处理?  
   
    '下面是程序源代码,可以直接COPY后运行调试。  
    '麻烦高手帮忙看一下,按钮那部分代码因该怎样改动  
    '才能实现我想要的功能呢?  
    '经调试后发现提交按钮以后各个Radiobutton的value确实已经改变了  
    '但是除了最后一个按钮有返回到浏览器显示外,其他都没有...  
    '其实显示只是我想要的基本功能,最主要的是要把数据写回数据库,  
    '不过如果能解决显示问题相信其它原理也一样了吧....  
   
      <%@   Page   Language="VB"   Debug="true"   trace="true"   runat="server"%>  
  <%@Import   Namespace="System.Data"%>  
  <html><head><script   language="VB"   runat="server">    
           
           
                  dim   iLoop,cLoop,iNumRows   As   Integer    
                   
                  dim   Choicer1   As   HtmlInputRadioButton    
                      dim   Choicer2   As   HtmlInputRadioButton    
                    dim   Choicer3   As   HtmlInputRadioButton    
                    dim   Choicer4   As   HtmlInputRadioButton    
              '     dim   Choice1   As   RadioButtonList    
                    dim   Label_Cho   As     Label    
                    Dim   NewButtonControl   As   New   HtmlButton()    
                       
                    '这里原意是对每一组按钮都进行处理,每一个选择题都对应地出现提示的,    
                    '结果却只有最后一组按钮才有效地出现提示,前面几组按钮都失效了    
                    '请问这里对循环体内的不同组件的命名及调用该如何处理?    
                         
        public   Sub   Button_Click(sender   As   Object,   e   As   EventArgs)    
                    If   Choicer1.Checked   =   True   Then    
                    '   提交后显示信息    
                    Message.InnerHtml   =   "你选择的答案是A,你的答案已提交了!"    
                End   if    
                    If   Choicer2.Checked   =   True   Then    
                    '   提交后显示信息    
                    Message.InnerHtml   =   "你选择的答案是B,你的答案已提交了!"    
                End   if    
                    If   Choicer3.Checked   =   True   Then    
                    '   提交后显示信息    
                    Message.InnerHtml   =   "你选择的答案是C,你的答案已提交了!"    
                End   if    
                    If   Choicer4.Checked   =   True   Then    
                    '   提交后显示信息    
                    Message.InnerHtml   =   "你选择的答案是D,你的答案已提交了!"    
                End   if    
   
   
              End   Sub    
   
                Sub   Page_load(sender   AS   Object,e   As   EventArgs)    
                             
                          dim   iNUmRows   AS   Integer    
                          INumRows=4    
                       
                        For   iLoop=0   To   iNumRows-1    
                           
                            Label_Cho=New   Label    
                            Label_Cho.Text="第"&   (iLoop+1).ToString   &   "题"   &"<br>"    
                            Bullseys.Controls.Add(Label_Cho)    
                                 
                              Choicer1=New   HtmlInputRadioButton()    
                                               
                            Label_Cho=New   Label    
                            Label_Cho.Text=""&"A."&""&   (1.23*(iLoop+1)).Tostring   &"<br>"    
                            Choicer1.Value   =   "Value1"    
                                    Choicer1.Checked   =   false    
                                    Choicer1.Name   =   "RadioSet"&iLoop    
                            Choicer1.ID="Choicer1"&iLoop                              
                            Bullseys.Controls.Add(Choicer1)    
                            Bullseys.Controls.Add(Label_Cho)    
                          '   Bullseys.Controls.Add(Choice1)    
                               
                                                                     
                            Choicer2=New   HtmlInputRadioButton()    
                            Label_Cho=New   Label    
                            Label_Cho.Text=""&"B."&""&   (1.45*(iLoop+1)).Tostring   &"<br>"    
                            Choicer2.Value   =   "Value2"    
                                    Choicer2.Checked   =   false    
                                    Choicer2.Name   =   "RadioSet"&iLoop    
                            Choicer2.ID="Choicer2"&iLoop    
                            Bullseys.Controls.Add(Choicer2)    
                            Bullseys.Controls.Add(Label_Cho)    
                               
                                 
                              Choicer3=New   HtmlInputRadioButton()    
                              Label_Cho=New   Label    
                            Label_Cho.Text=""&"C."&""&   (1.56*(iLoop+1)).Tostring   &"<br>"    
                            Choicer3.Value   =   "Value3"    
                                    Choicer3.Checked   =   false    
                                    Choicer3.Name   =   "RadioSet"&iLoop    
                            Choicer3.ID="Choicer3"&iLoop                              
                            Bullseys.Controls.Add(Choicer3)    
                            Bullseys.Controls.Add(Label_Cho)    
                               
                              Choicer4=New   HtmlInputRadioButton()    
                            Label_Cho=New   Label    
                             
                            Label_Cho.Text=""&"D."&""&(1.67*(iLoop+1)).Tostring   &"<br>"    
                            Choicer4.Value   =   "Value4"    
                                    Choicer4.Checked   =   false    
                                    Choicer4.Name   =   "RadioSet"&iLoop    
                            Choicer4.ID="Choicer4"&iLoop                              
                            Bullseys.Controls.Add(Choicer4)    
                            Bullseys.Controls.Add(Label_Cho)    
                               
                              dim   Clicker   As   HtmlButton=New   HtmlButton()    
                            Clicker.InnerText="提交答案"    
                            Clicker.ID   =   "Clicker1"&iLoop    
                            AddHandler   Clicker.ServerClick,   AddressOf   Button_Click    
                            Bullseys.Controls.Add(Clicker)    
                               
                    Label_Cho=New   Label          
                            Label_Cho.Text="<br>"    
                      Bullseys.Controls.Add(Label_Cho)              
                                                                                           
                                Next   iLoop    
                                                                                                   
                       
                      End   Sub                      
   
          </script><meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <title>选择题测试</title>  
   
  </head>  
  <body   bgcolor="#CCCCCC">  
  <form   runat="server"><p>  
  <asp:placeholder   ID="Bullseys"   runat="server"/>  
  </p>  
  <p><span   ID="Message"    
        runat="server"/></p>  
  </form>  
  </body>  
  </html>  
  问题点数:0、回复次数:9Top

1 楼scocsdn(发菜)回复于 2004-05-03 11:19:41 得分 0

帮顶Top

2 楼littleqiang520(小强.NET)回复于 2004-05-03 11:26:41 得分 0

HtmlInputRadioButton   要设置为同一组,name属性都要相同Top

3 楼Mybeautiful(天之痕)回复于 2004-05-03 11:34:40 得分 0

HtmlInputRadioButton   要设置为同一组,name属性都要相同  
   
   
  不是name属性吧?应该是groupname(好像是,楼主看看)Top

4 楼46539492(男儿当自强(http://blog.csdn.net/46539492/))回复于 2004-05-03 12:22:34 得分 0

楼上的兄弟说的对!Top

5 楼jiaqingchen(蓝色星期天)回复于 2004-05-03 16:17:54 得分 0

Choicer1.Name   =   "RadioSet"&iLoop    
  Choicer2.Name   =   "RadioSet"&iLoop    
  Choicer3.Name   =   "RadioSet"&iLoop    
  Choicer4.Name   =   "RadioSet"&iLoop    
    在同一组内的RadioButton的name属性已经设为同一组了啊,因为循环一次的时候出现四个选项,每一个选项的name都是一样的......  
      再说最后一个按钮点击后也确实出现了可以辨认效果,只是前面几个按钮都没有反应而已...  
    继续顶Top

6 楼jiaqingchen(蓝色星期天)回复于 2004-05-03 16:24:05 得分 0

PS:因为我这里用的是HTMLRadioButton而不是RadioButton,所以应该是name属性而不是GroupName属性吧?Top

7 楼jiaqingchen(蓝色星期天)回复于 2004-05-03 17:22:33 得分 0

55,急死我也,大哥们快来帮帮忙啊!!Top

8 楼kenalzb(kenalzb)回复于 2004-05-04 08:50:27 得分 0

你可以在程序运行时使用FindControl方法:例如:  
  int   i,j;  
  j=menulbsl;  
  string   zzqxlb;  
  zzqxlb="";  
  for(i=0;i<   j;i++)  
  {  
  CheckBox   cb;  
  cb=(CheckBox)this.Place.FindControl("gnmk"+i.ToString());    
  if   (cb.Checked)     //如果被选中  
  {  
  zzqxlb=zzqxlb+cb.Text.Trim();  
  zzqxlb=zzqxlb+',';  
  }  
  }Top

9 楼cat_hsfz(我的新Blog在http://cathsfz.cnblogs.com)回复于 2004-05-04 11:04:59 得分 0

你的意思是不是你显示若干到4选1的选择题,然后每一道题旁边都有一个button,按这个button的时候就显示这道题选了什么?  
   
  第一个建议当然是把一道题封装成WebControl。这时候好像需要实现一个INamingContainer的接口(这个仅仅是“标记接口”,标记了就行),用这个接口标记你的WebControl后,Page就会自动更改这个WebControl内子控件的名字以免页面内出现重复命名。  
   
  第二个建议就是用asp的思路来做。以前在asp要做这样的事情不难,因为HTML中的RadioButton在提交的时候不是面向RadioButton.Name而是面向RadioButton.GroupName的。这是什么意思?就是说如果你有一个叫choice的group,内涵A,B,C,D四个RadioButton,那么提交的数据就是choice="C"这样的。至于C.Check,则是.NET自动判断出来的。我们要做的就是直接读某一个Group的值,例如Request.Form["choice"],这是读取出来的就是choice这个group被选中的那个选项的value。  
   
  注:建议二我没测试过,这仅仅是根据asp/html的经验提供的建议。至于一个RadioButton的各个属性对应一个<input...>中的哪些部分就要你实际测试了。Top

相关问题

  • asp调用vb生成的dll
  • Sql调用.net生成的.dll和com+
  • 动态生成的控件调用
  • VC中调用VB生成的DLL(java调用VB的DLL)
  • 用VB如何生成dll,以及如何调用它?
  • asp中调用dll生成excel文件出错,请帮忙。
  • 如何生成编译dll,并在前台调用
  • 菜菜题:关于DLL的生成、调用!
  • 如何手工调用Delphi生成的标准过程?
  • 如何在PB中调用VB生成的activex dll文件

关键词

  • 按钮

得分解答快速导航

  • 帖主:jiaqingchen

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo