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

pgy8288 2005-05-10 08:26:45
我需要按顺序取得所有的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: <%# DataBinder.Eval(Container.DataItem,"aA") %></td>
</tr>
<tr>
<td><asp:RadioButton ID="rdb2" GroupName="Simple" runat="server" /></td>
<td>B: <%# DataBinder.Eval(Container.DataItem,"aB") %></td>
</tr>
<tr>
<td><asp:RadioButton ID="rdb3" GroupName="Simple" runat="server" /></td>
<td>C: <%# DataBinder.Eval(Container.DataItem,"aC") %></td>
</tr>
<tr>
<td><asp:RadioButton ID="rdb4" GroupName="Simple" runat="server" /></td>
<td>D: <%# DataBinder.Eval(Container.DataItem,"aD") %></td>
</tr>
<tr>
<td><asp:RadioButton ID="rdb5" GroupName="Simple" runat="server" /></td>
<td>E: <%# DataBinder.Eval(Container.DataItem,"aE") %></td>
</tr>
</table>
</itemtemplate>
</asp:DataList>
...全文
314 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
pgy8288 2005-05-14
  • 打赏
  • 举报
回复
3,1,1,1,10,2,1,0,0,1,0,1,0,0,
贴子回复次数大于跟给分次数
这是什么意思?
怎么结不了帖子啊
angel_new 2005-05-11
  • 打赏
  • 举报
回复
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里边绑定的控件?
pgy8288 2005-05-11
  • 打赏
  • 举报
回复

其实我觉得你总是得遍历所有的cell,你为什么不能在遍历的时候再获取这个ID呢?

如何遍历获取呢?
麻烦你给点资料啊或者讲解一下啊,因为我既需要得到ID,也需要得到在一个ID对应的题目中,考生所选择/填写的答案
谢谢啦
hchxxzx 2005-05-11
  • 打赏
  • 举报
回复
在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");

}
hchxxzx 2005-05-11
  • 打赏
  • 举报
回复
如下:

TextBox mybox = (TextBox)this.DataList1.Items[触发的行数].FindControl("TextBox的ID");
值 = mybox.Text;
angel_new 2005-05-11
  • 打赏
  • 举报
回复
hchxxzx(NET?摸到一点门槛)
楼上,我想问一下,如果我在datalist绑定后加了radiolist或是textbox,在触发事件的时候,如何获得他们的值?
njuzgj 2005-05-10
  • 打赏
  • 举报
回复
UP
wd_terry 2005-05-10
  • 打赏
  • 举报
回复
不是很懂楼主的意思,不知道可不可以先做个HIDDEN属性的控件保存ID值?
vzxq 2005-05-10
  • 打赏
  • 举报
回复
事先保存起来好
sukaru 2005-05-10
  • 打赏
  • 举报
回复
可以先绑定主键 DataGrid1.DataKeyField="主键ID"

其实我觉得你总是得遍历所有的cell,你为什么不能在遍历的时候再获取这个ID呢?
lywzl 2005-05-10
  • 打赏
  • 举报
回复
应该在dataset中取ID,另外在select查询语句中应该包含ID字段,就可以取得ID
Bruce_H21 2005-05-10
  • 打赏
  • 举报
回复
当然首先应该绑定该字段

DataGrid1.DataSource= ...
DataGrid1.DataKeyField="主键ID"
DataGrid1.DataBind()
Bruce_H21 2005-05-10
  • 打赏
  • 举报
回复
DataGrid1.DataKeys(e.Item.ItemIndex) --- 主键ID
hackate 2005-05-10
  • 打赏
  • 举报
回复
哎呀,你再从数据库取出来的时候,你就可以用一个数组,比如ArrayList来保存他的ID嘛。当然也可以保存答案啊。什么的。。。
hchxxzx 2005-05-10
  • 打赏
  • 举报
回复
你应对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去保存,太麻烦.
pgy8288 2005-05-10
  • 打赏
  • 举报
回复
我做了一个hidden控件,但是取值的时候老是有问题

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧