ASP转发器从radiobutton收集数据

时间:2016-01-18 11:59:05

标签: c# asp.net radio-button

所以我有一个Asp repeater打印出一些用户将用来回答测试的radiobuttons。我需要做的是检查哪些radiobuttons被检查,以便我可以将它们保存到XML文件。

这是代码

        <asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
                <div class="repeaterDiv">
                    <ul id="list">
                        <li style="list-style: none">
                            <p style="font-weight: bold">Fråga nummer: <%# Container.ItemIndex + 1 %></p>
                            <asp:Label ID="q1_label" runat="server" Text='<%#Eval ("text")%>'></asp:Label>
                            <asp:CheckBox ID="q1_svar1" Text='<%#Eval("q1")%>' runat="server" CssClass="radioButtons;" />
                            <asp:CheckBox ID="q1_svar2" Text='<%#Eval("q2")%>' runat="server" CssClass="radioButtons;"/>
                            <asp:CheckBox ID="q1_svar3" Text='<%#Eval("q3") %>' runat="server" CssClass="radioButtons;"/>
                            <asp:CheckBox ID="q1_svar4" Text='<%#Eval("q4") %>' runat="server" CssClass="radioButtons;"/>
                            <hr />
                        </li>
                    </ul>
                </div>
            </ItemTemplate>
        </asp:Repeater>

我真的不知道如何定位已检查的那些,我该怎么做?提前谢谢。

1 个答案:

答案 0 :(得分:2)

您可以在转发器项目中使用foreach循环,并使用用户FindControl方法

  protected void Button1_Click(object sender, EventArgs e)
    {
        foreach (RepeaterItem item in Repeater1.Items)
        {
            CheckBox chk = (CheckBox)item.FindControl("q1_svar1");
            if (chk.Checked)
            {
                //Your code ...
            }
        }
    }