在带有If的For循环中检查CheckBox状态
本文关键字:检查 CheckBox 状态 循环 For If | 更新日期: 2023-09-27 18:14:00
我这里有一个简单的情况。我有一个网页表单'Accordion'其中有一些'AccordionPanes',在每个AccordionPane有一些'复选框'。大约30个复选框。
现在我需要检查每个复选框的状态。问题是怎么做到的?我正在考虑像这样的"for循环"answers"If条件":
for (i = 1; i <= 5; i++)
{
if (CheckBox(i).Checked)
{
Label1.Text = "yeepee!";
}
}
但看起来这不是使用'if state'的标准方式(看起来我不是专业开发人员!)。朋友们,你建议走哪条路?
为了使情况更明朗,这里是我在我的表单中使用的HTML代码:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Accordion ID="Accordion1"
runat="server"
HeaderCssClass="accordionHeader"
HeaderSelectedCssClass="accordionHeaderSelected"
ContentCssClass="accordionContent"
SelectedIndex="0"
FadeTransitions="false"
FramesPerSecond="40"
TransitionDuration="250"
AutoSize="Fill"
RequireOpenedPane="true"
SuppressHeaderPostbacks="true">
<Panes>
<asp:AccordionPane ID="AccordionPane1" runat="server">
<Header>
<h1>title</h1>
</Header>
<Content>
<asp:CheckBox ID="CheckBox1" runat="server" Text="sometext" />
<asp:CheckBox ID="CheckBox2" runat="server" Text="sometext" />
<asp:CheckBox ID="CheckBox3" runat="server" Text="sometext" />
<asp:CheckBox ID="CheckBox4" runat="server" Text="sometext" />
<asp:CheckBox ID="CheckBox5" runat="server" Text="sometext" />
<asp:CheckBox ID="CheckBox6" runat="server" Text="sometext" />
<asp:CheckBox ID="CheckBox7" runat="server" Text="sometext" />
</Content>
</asp:AccordionPane>
</Panes>
<Panes>
<asp:AccordionPane ID="AccordionPane2" runat="server">
<Header>
<h1>title</h1>
</Header>
<Content>
<asp:CheckBox ID="CheckBox8" runat="server" Text="sometext" />
<asp:CheckBox ID="CheckBox9" runat="server" Text="sometext" />
<asp:CheckBox ID="CheckBox10" runat="server" Text="sometext" />
</Content>
</asp:AccordionPane>
</Panes>
.
<!-- some more Panes and Checkboxes! -->
.
</asp:Accordion>
</ContentTemplate>
</asp:UpdatePanel>
当然还有ASP。. Net是平台,c# . Net是语言。谢谢你,我期待着你的回答。问候。
编辑:
我唯一的问题就是这个!你不能像这样在循环中使用复选框:Checkbox(i)。检查:
bool[] array = new bool[30];
for (int i = 0; i < 30; i++)
{
array[i] = CheckBox(i).Checked ;
}
我很想知道我如何使用一个变量的复选框的id,如:
i = 15;
CheckBox(i).Checked
代替:
CheckBox15.Checked
使用数组
bool[] array = new bool[30];
for (int i = 0; i < 30 ; i++)
{
array [i] =CheckBox(i).Checked;
}
,但问题将得到页面中的所有文本框,你可以尝试下面的代码在页面加载
foreach (Control ctrl in Page.Controls) {
if (ctrl is CheckBox) {
array [i] = ((CheckBox)ctrl).Checked;
}
}
或者你可以尝试使用客户端jQuery或JavaScript
遍历复选框并计算每个已选中或未选中的