проверка состояния CheckBox в цикле For с помощью If - PullRequest
0 голосов
/ 10 ноября 2011

У меня здесь простая ситуация.У меня есть веб-форма с 'Accordion', в которой есть несколько 'AccordionPanes', и в каждом AccordionPane есть несколько 'CheckBoxes'.Всего около 30 флажков.

Теперь мне нужно проверить статусы всех флажков.и вопрос как !?Я думал о «для цикла» и «Если условие», как это:

for (i = 1; i <= 5; i++)
{
    if (CheckBox(i).Checked)
    {
        Label1.Text = "yeepee!";
    }
}

Но похоже, что это не стандартный способ использовать «если состояние» (и похоже, что я неПро разработчик!).Теперь, друзья, Какой способ вы предлагаете?

, чтобы сделать ситуацию более яркой, вот код 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 ;
   }

Я точно хочу знать, как я могу использовать идентификаторы флажков с переменной,как:

i = 15;
CheckBox(i).Checked

вместо:

CheckBox15.Checked

Спасибо, ребята.

1 Ответ

2 голосов
/ 10 ноября 2011

использовать массив 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-скрипта

Пропускать флажки и считать каждый отмеченный или непроверенный

надеюсь, это поможет вам.

...