我需要按顺序取得所有的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>
麻烦各位高手指教一下啊
相关代码如下:
<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>
解决方案 »
- 【急】vs2008(C#)怎样打印二维条码?
- asp.net与ajax
- 用户代码未处理 NullReferenceException未将对象引用设置到对象的实例。
- 在c#中正则取出标签内容
- CACHE的有效时间
- 各位师傅帮帮忙吧!!!我实在不知道那错了!!!!!!!!!!!
- 求助水晶报表为何不弹出导出界面,不能导出EXCEL,而且图标全无
- jquery的ajax后台怎么写
- 用这个格式写的数据库语句老是报错——objCmd.Parameters.Add("@test", OleDbType.Binary,fileLength).Value = fileData;
- asp.net2.0问题
- Page_Init是不是将页面编译成程序集后执行的事件?
- 在A服务器上访问B服务器上的数据库,可以实现吗?
DataGrid1.DataKeyField="主键ID"
DataGrid1.DataBind()
this.datalist1.DataKeyField = "xxid";
this.datalist1.DataBind();然后,在取值的时候就可以这样
for(int i=0;i<this.datalist1.Items.Count;i++)
{
xxid = this.datalist1.DataKeys[i].ToString();
}不必自己做hidden去保存,太麻烦.
楼上,我想问一下,如果我在datalist绑定后加了radiolist或是textbox,在触发事件的时候,如何获得他们的值?
值 = mybox.Text;
其实我觉得你总是得遍历所有的cell,你为什么不能在遍历的时候再获取这个ID呢?
如何遍历获取呢?
麻烦你给点资料啊或者讲解一下啊,因为我既需要得到ID,也需要得到在一个ID对应的题目中,考生所选择/填写的答案
谢谢啦
现在的问题是,我不知道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里边绑定的控件?
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");}