gridView获得每行的值

时间:2021-04-24 21:13:12

前台代码:

<asp:GridView ID="GridView1" runat="server" DataKeyNames="ID" EmptyDataText="暂无试题" Width="100%" OnRowCommand="GridView1_RowCommand" AutoGenerateColumns="False">
                            <Columns>
                                <asp:TemplateField>
                                    <HeaderTemplate>
                                            <asp:Label id="Label24" runat="server" Text="一、单选题(每题1分)">
                                                    </asp:Label>
                                    </HeaderTemplate>
                                    <ItemTemplate>
                                        <table id="Table2" cellSpacing="1" cellPadding="1" width="100%" align="center" border="0">
                                            <tr>
                                                <td colSpan="4">
                                                    <asp:Label id="Label1" runat="server" Text='<%# Container.DataItemIndex+1 %>'>
                                                    </asp:Label>
                                                    <asp:Label id="Label2" runat="server" Text='<%# Eval("content","、{0}") %>'>
                                                    </asp:Label>
                                                    <asp:Label id="Label3" runat="server" Text='<%# Eval("answer") %>' Visible="False">
                                                    </asp:Label>
                                                    <asp:Label id="Label4" runat="server" Text='<%# Eval("ID") %>' Visible="False">
                                                    </asp:Label>
                                                    </td>
                                            </tr>
                                            <tr>
                                                <td width="35%">
                                                    <asp:RadioButton id="rbA" runat="server" Text='<%# Eval("answerA") %>' GroupName="Sl">
                                                    </asp:RadioButton></td>
                                                <td width="35%">
                                                    <asp:RadioButton id="rbB" runat="server" Text='<%# Eval("answerB") %>' GroupName="Sl">
                                                    </asp:RadioButton></td>
                                                <td></td>
                                            </tr>
                                            <tr>
                                                <td width="35%">
                                                    <asp:RadioButton id="rbC" runat="server" Text='<%# Eval("answerC") %>' GroupName="Sl">
                                                    </asp:RadioButton></td>
                                                <td width="35%">
                                                    <asp:RadioButton id="rbD" runat="server" Text='<%# Eval("answerD") %>' GroupName="Sl">
                                                    </asp:RadioButton></td>
                                                <td></td>
                                            </tr>
                                        </table>
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                            <HeaderStyle Font-Size="12pt" HorizontalAlign="Left" />
                        </asp:GridView>

后台代码:

遍历gridview的每一行,取得RadioButton的值。

 /// <summary>
    /// 提交按钮
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnCommit_Click(object sender, EventArgs e)
    {

        ItemOperater io = new ItemOperater(Session);

        ;//取出单选题的每题分值
        foreach (GridViewRow dr in GridView1.Rows)//对单选题每题进行判断用户选择答案
        {
            SelectedItem si = new SelectedItem();
            string str = "";
            if (((RadioButton)dr.FindControl("rbA")).Checked)
            {
                str = "A";

            }
            else if (((RadioButton)dr.FindControl("rbB")).Checked)
            {
                str = "B";
            }
            else if (((RadioButton)dr.FindControl("rbC")).Checked)
            {
                str = "C";
            }
            else if (((RadioButton)dr.FindControl("rbD")).Checked)
            {
                str = "D";
            }
            if (((Label)dr.FindControl("Label3")).Text.Trim() == str)//将用户选择结果和答案进行比较
            {
                score = score + singlemark;
            }
            si.selected = str; //选中的答案
            Label lbAnswer = (Label)dr.FindControl("Label3");
            Label lbID = (Label)dr.FindControl("Label4");
            si.answer = lbAnswer.Text.Trim();
            si.ID = Convert.ToInt32(lbID.Text.Trim());
            io.Add(si);
        }
        insert(io);  //加到数据库
        lbScore.Text = score+"";
    }
    public void insert(ItemOperater io) {
        ;
        if (Request["course_id"] != null)
        {
            course_id = Int32.Parse(Request["course_id"].ToString());
        }
        stu_id = Convert.ToInt32(Session["ID"].ToString());
        io.InsertScore(stu_id, score, course_id);
    }