<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);返回的条数正确,但是返回的都是第一组的选择情况,没有对后面的几组数据做判断
请问该怎么修改?

解决方案 »

  1.   

            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");
            }
      

  2.   

     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]中的数据么……
      

  3.   

    改用RadioButtonList 
    应该可以实现的
      

  4.   

    你的意思是如果第一组选了rbtn1 ,那无论其它组选什么,
    所有数据都显示 System.Convert.ToInt32(ds.Tables["test_temp1"].DefaultView[0].Row[4])的值?
      

  5.   

      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");