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

如何onclick事件中取得datalist中显示的ID值呢?

楼主pgy8288(Just Coding)2005-05-10 08:26:45 在 .NET技术 / ASP.NET 提问

我需要按顺序取得所有的datalist中显示的ID值,我做的是考试页面,需要将学生做的每一题的答案写回数据库,但是,我却只能显示出题目,而不知道如何重新获取所显示题目的ID值,  
  麻烦各位高手指教一下啊  
  相关代码如下:  
      <asp:DataList   ID="dlstSimple"   ItemStyle-Width="100%"   DataKeyField="id"   runat="server">  
          <itemtemplate>  
  <table   width="700"   border="1"   cellspacing="0"   bordercolor="#CCCCCC">  
      <tr>  
          <td   width="5%"   align="center"><%   Response.Write(i+1)   %><%   i=i+1   %>:</td>  
          <td><%#     DataBinder.Eval(Container.DataItem,"question")   %>  
        <input   type="text"   id=aaa   value="<%#DataBinder.Eval(Container.DataItem,"id")%>">  
  </td>  
      </tr>  
      <tr>  
          <td><asp:RadioButton   ID="rdb1"     GroupName="Simple"   runat="server"   /></td>  
          <td>A:&nbsp;<%#   DataBinder.Eval(Container.DataItem,"aA")   %></td>  
      </tr>  
      <tr>  
          <td><asp:RadioButton   ID="rdb2"   GroupName="Simple"   runat="server"   /></td>  
          <td>B:&nbsp;<%#   DataBinder.Eval(Container.DataItem,"aB")   %></td>  
      </tr>  
      <tr>  
          <td><asp:RadioButton   ID="rdb3"   GroupName="Simple"   runat="server"   /></td>  
          <td>C:&nbsp;<%#   DataBinder.Eval(Container.DataItem,"aC")   %></td>  
      </tr>  
      <tr>  
          <td><asp:RadioButton   ID="rdb4"   GroupName="Simple"   runat="server"   /></td>  
          <td>D:&nbsp;<%#   DataBinder.Eval(Container.DataItem,"aD")   %></td>  
      </tr>  
      <tr>  
          <td><asp:RadioButton   ID="rdb5"   GroupName="Simple"   runat="server"   /></td>  
          <td>E:&nbsp;<%#   DataBinder.Eval(Container.DataItem,"aE")   %></td>  
      </tr>  
  </table>  
  </itemtemplate>  
      </asp:DataList>  
  问题点数:21、回复次数:16Top

1 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-05-10 08:55:44 得分 2

哎呀,你再从数据库取出来的时候,你就可以用一个数组,比如ArrayList来保存他的ID嘛。当然也可以保存答案啊。什么的。。。Top

2 楼Bruce_H21(麦克屎高飞)回复于 2005-05-10 08:59:15 得分 1

DataGrid1.DataKeys(e.Item.ItemIndex)     ---   主键IDTop

3 楼Bruce_H21(麦克屎高飞)回复于 2005-05-10 09:02:13 得分 1

当然首先应该绑定该字段  
   
  DataGrid1.DataSource=   ...  
  DataGrid1.DataKeyField="主键ID"  
  DataGrid1.DataBind()Top

4 楼lywzl(悠闲闪客)回复于 2005-05-10 09:10:03 得分 1

应该在dataset中取ID,另外在select查询语句中应该包含ID字段,就可以取得IDTop

5 楼sukaru(逍遥子)回复于 2005-05-10 09:12:54 得分 7

可以先绑定主键   DataGrid1.DataKeyField="主键ID"  
   
  其实我觉得你总是得遍历所有的cell,你为什么不能在遍历的时候再获取这个ID呢?Top

6 楼vzxq(灵感人)回复于 2005-05-10 10:38:03 得分 2

事先保存起来好Top

7 楼wd_terry(IQ+EQ=QQ)回复于 2005-05-10 10:54:11 得分 1

不是很懂楼主的意思,不知道可不可以先做个HIDDEN属性的控件保存ID值?Top

8 楼njuzgj(罐子)回复于 2005-05-10 11:12:46 得分 0

UPTop

9 楼pgy8288(Just Coding)回复于 2005-05-10 15:10:43 得分 0

我做了一个hidden控件,但是取值的时候老是有问题Top

10 楼hchxxzx(NET?摸到一点门槛)回复于 2005-05-10 16:16:01 得分 1

你应对datalist绑定主键,这样取就方便了,就如     sukaru(逍遥子)   所说的.具体如下:  
   
  this.datalist1.DataSource   =   数据集  
  this.datalist1.DataKeyField   =   "xxid";  
  this.datalist1.DataBind();  
   
  然后,在取值的时候就可以这样  
  for(int   i=0;i<this.datalist1.Items.Count;i++)  
  {  
  xxid   =   this.datalist1.DataKeys[i].ToString();  
  }  
   
  不必自己做hidden去保存,太麻烦.Top

11 楼newb921(Angel)回复于 2005-05-11 09:46:11 得分 1

hchxxzx(NET?摸到一点门槛)  
  楼上,我想问一下,如果我在datalist绑定后加了radiolist或是textbox,在触发事件的时候,如何获得他们的值?Top

12 楼hchxxzx(NET?摸到一点门槛)回复于 2005-05-11 10:01:28 得分 1

如下:  
   
  TextBox   mybox   =   (TextBox)this.DataList1.Items[触发的行数].FindControl("TextBox的ID");  
  值   =   mybox.Text;Top

13 楼pgy8288(Just Coding)回复于 2005-05-11 11:00:34 得分 0

 
  其实我觉得你总是得遍历所有的cell,你为什么不能在遍历的时候再获取这个ID呢?  
       
    如何遍历获取呢?  
  麻烦你给点资料啊或者讲解一下啊,因为我既需要得到ID,也需要得到在一个ID对应的题目中,考生所选择/填写的答案  
  谢谢啦  
  Top

14 楼newb921(Angel)回复于 2005-05-11 11:26:58 得分 1

hchxxzx(NET?摸到一点门槛)    
  现在的问题是,我不知道radiolist或是textbox的ID或是数量,我得遍历datalist来判断,  
  foreach(   Control   c   in   this.Controls)  
  {  
  string   strtype   =c.GetType().ToString();  
  if   (c.GetType().ToString()==   "System.Web.UI.HtmlControls.HtmlForm")  
   
   
  {  
  foreach   (Control   tb   in   c.Controls)    
  {          
  //string   strtb   =   tb.GetType().ToString();  
  if   (   tb   is   TextBox   )  
  {  
                        //string   bbb   =   (   (   TextBox   )   tb   ).Text.ToString();  
  }  
  else  
  {  
  if(tb   is   RadioButtonList)  
                    {  
  string   aaa   =   ((RadioButtonList)tb).SelectedValue.ToString();  
  }  
  }  
  }    
  }  
  }  
  上面的方法只遍历了大的控件,并没有遍历到datalist里边绑定的控件,请教,如何遍历datalist里边绑定的控件?Top

15 楼hchxxzx(NET?摸到一点门槛)回复于 2005-05-11 22:59:48 得分 2

在DATALIST绑定之后,立即执行如下  
  for(int   i=0;i<this.datalist1.Items.Count;i++)  
  {  
  //取键值  
  xxid   =   this.datalist1.DataKeys[i].ToString();  
  //这个就是取到DATALIST里面的控件,其他的控件也类似于此  
  TextBox   mybox   =   (TextBox)this.DataList1.Items[i].FindControl("TextBox的ID");  
   
  }Top

16 楼pgy8288(Just Coding)回复于 2005-05-14 16:39:34 得分 0

3,1,1,1,10,2,1,0,0,1,0,1,0,0,  
  贴子回复次数大于跟给分次数    
  这是什么意思?  
  怎么结不了帖子啊Top

相关问题

  • DataList的ItemDataBound事件
  • datalist绑定控件事件!
  • 事件ID 8032
  • DataList嵌套DataList,子DataList控件中的ItemDataBound事件的问题
  • 我怎样才能在DataList的ItemDataBound事件中对每个单元格改变它的值?
  • 马上给分:如何通过一个按钮事件取得在DataList中的CheckBoxList中的值??
  • datalist如何在EditCommand事件里面取得某一列(未绑定到控件)的值?
  • 提问:Datalist中的事件触发
  • datalist的ItemCreated事件执行问题
  • DataList的ItemTemplate中button事件的捕获

关键词

  • datagrid
  • datalist
  • 值
  • 主键
  • datagrid1
  • datakeyfield
  • 显示
  • 取得
  • 保存
  • 绑定

得分解答快速导航

  • 帖主:pgy8288
  • hackate
  • Bruce_H21
  • Bruce_H21
  • lywzl
  • sukaru
  • vzxq
  • wd_terry
  • hchxxzx
  • newb921
  • hchxxzx
  • newb921
  • hchxxzx

相关链接

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

广告也精彩

反馈

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