我应该如何收集asp.net的复选框信息

时间:2014-10-27 08:08:58

标签: asp.net checkbox

我有自写网格,需要在提交按钮点击后收集有关项目复选框的信息。

<form id="form1" runat="server">
    <div>
    <asp:Repeater id="fields" runat="server">

<HeaderTemplate>
<table>
    <tr><td><h3>Fields Info</h3></td><td><h3>Check</h3></td></tr>
</HeaderTemplate>

<ItemTemplate>
 <tr><td><asp:Label runat="server" 
                    text=<%# Eval("Field")%> /></td><td><asp:CheckBox runat="server" /></td></tr>
</ItemTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>
<asp:Button runat="server" Text="Submit"/>

请求帮助!

1 个答案:

答案 0 :(得分:0)

什么样的信息?如果您想在转发器中找到所有CheckBoxes,请为其提供ID并使用RepeaterItem.FindControl("TheID")。或者您可以循环所有项目并使用Controls.OfType<CheckBox>

var allCheckBoxes =  fields.Items.Cast<RepeaterItem>()
    .Select(item => new { 
        Label    = item.Controls.OfType<Label>().First(),
        CheckBox = item.Controls.OfType<CheckBox>().First()
    });

现在你可以循环它们了:

foreach(var x in allCheckBoxes)
{
    Console.WriteLine("Label: {0} checked: {1}", x.Label.Text, x.CheckBox.Checked ? "yes" : "no");
}

或仅获取已选中的内容:

var checkedOnly = allCheckBoxes.Where(x => x.CheckBox.Checked);
foreach(var x in allCheckBoxes){
    //...
}