我正在将以前的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,但到目前为止,将它转移到可用代码方面运气不佳。
思想?
答案 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
感谢您的回答!