我的情况很简单。我有一个带有'Accordion'的网页表格,其中有一些'AccordionPanes',每个AccordionPane都有一些'CheckBoxes'。共有约30个复选框。
现在我需要检查每个复选框的状态。问题是如何!?我正在考虑一个'for loop'和'If Condition'这样:
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是该语言。 谢谢,我期待着你的回答。 问候。
编辑:
谢谢大家,但我相信不太清楚。
我唯一的问题就是这个!你不能在这样的循环中使用复选框:复选框(i).Checked :
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
谢谢你们。
答案 0 :(得分:2)
使用bool数组
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或java脚本
来执行此操作Loop through checkboxes and count each one checked or unchecked
希望这会对你有所帮助。