关于RadioButton选中判断问题

szoe5203 2008-08-26 11:06:23

<asp:DataList ID="DataList1" runat="server" DataKeyField="testitemid">
<ItemTemplate>
<asp:Label ID="itemnameLabel" runat="server" Text='<%# Eval("itemname") %>'></asp:Label><br />
<asp:RadioButton ID="RadioButton1" runat="server" GroupName='<%# Eval("itemname") %>' Text='<%# Eval("select1") %>' ToolTip='<%# Eval("score1") %>' />
<asp:RadioButton ID="RadioButton2" runat="server" GroupName='<%# Eval("itemname") %>' Text='<%# Eval("select2") %>' ToolTip='<%# Eval("score2") %>' />
<asp:RadioButton ID="RadioButton3" runat="server" GroupName='<%# Eval("itemname") %>' Text='<%# Eval("select3") %>' ToolTip='<%# Eval("score3") %>' />
<asp:RadioButton ID="RadioButton4" runat="server" GroupName='<%# Eval("itemname") %>' Text='<%# Eval("select4") %>' ToolTip='<%# Eval("score4") %>' />
<asp:RadioButton ID="RadioButton5" runat="server" GroupName='<%# Eval("itemname") %>' Text='<%# Eval("select5") %>' ToolTip='<%# Eval("score5") %>' />
</ItemTemplate>
<SeparatorTemplate><hr /></SeparatorTemplate>
</asp:DataList>
</div>
<div><asp:Label ID="teststatement" runat="server"></asp:Label></div>
<asp:Button ID="submit" runat="server" Text="完成" OnClick="submit_Click" />


protected void submit_Click(object sender, EventArgs e)
{
int score;
foreach (DataListItem dli in DataList1.Items)
{
RadioButton rbtn1 = (RadioButton)DataList1.Items[0].FindControl("RadioButton1");
RadioButton rbtn2 = (RadioButton)DataList1.Items[0].FindControl("RadioButton2");
RadioButton rbtn3 = (RadioButton)DataList1.Items[0].FindControl("RadioButton3");
RadioButton rbtn4 = (RadioButton)DataList1.Items[0].FindControl("RadioButton4");
RadioButton rbtn5 = (RadioButton)DataList1.Items[0].FindControl("RadioButton5");
if (rbtn1.Checked == true)
{
score = System.Convert.ToInt32(ds.Tables["test_temp1"].DefaultView[0].Row[4]);
}
if (rbtn2.Checked == true)
{
score = System.Convert.ToInt32(ds.Tables["test_temp1"].DefaultView[0].Row[6]);
}
if (rbtn3.Checked == true)
{
score = System.Convert.ToInt32(ds.Tables["test_temp1"].DefaultView[0].Row[8]);
}
if (rbtn4.Checked == true)
{
score = System.Convert.ToInt32(ds.Tables["test_temp1"].DefaultView[0].Row[10]);
}
if (rbtn5.Checked == true)
{
score = System.Convert.ToInt32(ds.Tables["test_temp1"].DefaultView[0].Row[12]);
}
if (rbtn1.Checked == false && rbtn2.Checked == false && rbtn3.Checked == false && rbtn4.Checked == false && rbtn5.Checked == false)
{
Response.Write("<script language='javascript'>alert('您还没有完成,请重新选择');</script>");
return;
}
Response.Write(score);
Response.Write("<br />");
}
}

用上面这个判断只能判断绑定的多组数据中的第一组数据,Response.Write(score);返回的条数正确,但是返回的都是第一组的选择情况,没有对后面的几组数据做判断
请问该怎么修改?
...全文
1775 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunrain_yingxi 2008-08-26
  • 打赏
  • 举报
回复
RadioButton rbtn1 = (RadioButton)DataList1.Items[0].FindControl("RadioButton1");
RadioButton rbtn2 = (RadioButton)DataList1.Items[0].FindControl("RadioButton2");
RadioButton rbtn3 = (RadioButton)DataList1.Items[0].FindControl("RadioButton3");
RadioButton rbtn4 = (RadioButton)DataList1.Items[0].FindControl("RadioButton4");
RadioButton rbtn5 = (RadioButton)DataList1.Items[0].FindControl("RadioButton5");

改成
RadioButton rbtn1 = (RadioButton)DataList1.Items[0].FindControl("RadioButton1");
RadioButton rbtn2 = (RadioButton)DataList1.Items[1].FindControl("RadioButton2");
RadioButton rbtn3 = (RadioButton)DataList1.Items[2].FindControl("RadioButton3");
RadioButton rbtn4 = (RadioButton)DataList1.Items[3].FindControl("RadioButton4");
RadioButton rbtn5 = (RadioButton)DataList1.Items[4].FindControl("RadioButton5");
szoe5203 2008-08-26
  • 打赏
  • 举报
回复
4楼正解
我刚刚才
自己搞定了
多谢各位
Smile_Wong1 2008-08-26
  • 打赏
  • 举报
回复
你的意思是如果第一组选了rbtn1 ,那无论其它组选什么,
所有数据都显示 System.Convert.ToInt32(ds.Tables["test_temp1"].DefaultView[0].Row[4])的值?
jiangnan_010203 2008-08-26
  • 打赏
  • 举报
回复
改用RadioButtonList
应该可以实现的
redria 2008-08-26
  • 打赏
  • 举报
回复
foreach (DataListItem dli in DataList1.Items)
{
RadioButton rbtn1 = (RadioButton)DataList1.Items[0].FindControl("RadioButton1");
RadioButton rbtn2 = (RadioButton)DataList1.Items[0].FindControl("RadioButton2");
RadioButton rbtn3 = (RadioButton)DataList1.Items[0].FindControl("RadioButton3");
RadioButton rbtn4 = (RadioButton)DataList1.Items[0].FindControl("RadioButton4");
RadioButton rbtn5 = (RadioButton)DataList1.Items[0].FindControl("RadioButton5");
......

你这里怎么循环不都是取得是DataList1.Items[0]中的数据么……
szoe5203 2008-08-26
  • 打赏
  • 举报
回复
大家帮帮忙啊
szoe5203 2008-08-26
  • 打赏
  • 举报
回复
1楼的用法好像不行吧
ZengHD 2008-08-26
  • 打赏
  • 举报
回复
        foreach (DataListItem item in DataList1.Items)
{
RadioButton radButton1 = (RadioButton)item.FindControl("RadioButton1");
RadioButton radButton2 = (RadioButton)item.FindControl("RadioButton2");
RadioButton radButton3 = (RadioButton)item.FindControl("RadioButton3");
RadioButton radButton4 = (RadioButton)item.FindControl("RadioButton4");
RadioButton radButton5 = (RadioButton)item.FindControl("RadioButton5");
}

62,047

社区成员

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

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

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

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