0

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

我正在尝试做的是遍历一组复选框以查看它们是否被选中,如果是,则将它们的值添加到字符串中。

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

此外,复选框控制其他复选框组,因此如果(例如)checkbox1 被选中,那么我需要检查复选框组 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 进行了试验,但到目前为止,我在将其转换为可用代码方面运气不佳。

想法?

4

2 回答 2

0

如果这些是 HTML 控件而不是 asp.net CheckBox 控件,那么我将使用 javscript(如果可以选择 jQuery)来执行此操作。

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

于 2013-03-07T17:19:23.130 回答
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

感谢您的回答!

于 2013-03-12T00:49:30.807 回答