如何在asp.net中循环复选框

时间:2013-03-07 17:15:18

标签: asp.net vb.net visual-studio-2010 sql-server-2008

我正在将以前的PHP Web应用程序转换为Visual Basic中的ASP.Net,以便进行服务器传输。

我要做的是循环一组复选框以查看它们是否已被选中,如果是,请将它们的值添加到字符串中。

根据我的阅读,设置为HTML输入而不是ASP控件的复选框可能很难循环并从中获取值。

此外,复选框控制其他复选框组,因此如果选中(例如)复选框1,则需要检查复选框A组以查看其中的哪些复选框。如果选中复选框3,我需要循环通过B组等......

所有复选框都有ID,并带有简单的增量命名约定:PE1,PE2,PE3等......

使用VB在ASP中执行此操作的最佳方法是什么?在php中,循环提交复选框并使用变量和计数器来识别它们很简单:

var name = 'PE';
For(i=1; i<10; i++){
    checkbox = name.i;
    if(checkbox.checked){
        Blah blah. You get the point.
    }
}

但我不确定如何在vb.net中进行此操作。

我已尝试使用FindControl,但到目前为止,将它转移到可用代码方面运气不佳。

思想?

2 个答案:

答案 0 :(得分:0)

如果这些是HTML控件而不是asp.net CheckBox控件那么我会使用javscript(jQuery,如果这是一个选项)。

如果您坚持使用服务器端执行此操作,则需要在所有html输入中添加runat="server",然后使用FindControl在服务器端搜索它们。实际上现在我大声说出来,如果你不打算使用javascript,你应该把它们转换成asp.net CheckBox控件。

答案 1 :(得分:0)

循环访问ASP复选框和HTML复选框之间的最大区别是,当您检查必须使用的类型时:“HtmlInputCheckbox”,而不是“Checkbox”。这花了我很长时间才弄清楚,但现在循环工作得很好。

If TypeOf ctrl Is HtmlInputCheckBox Then
     Dim chkbox As HtmlInputCheckBox = CType(ctrl, HtmlInputCheckBox)
     If chkbox.Checked Then
     Blah
     End If
End If

感谢您的回答!