在我的应用程序中,我有一个复选框列表。下面列出的是复选框列表的 html,以及在加载它所在的页面时绑定它的 vb 代码。
<asp:CheckBoxList Runat="server" id="chklistTeams" RepeatColumns="7" RepeatDirection="Horizontal"
CellPadding="4" Font-Size="7pt"></asp:CheckBoxList>
下面是绑定复选框列表的VB
myCmd.CommandText = "Select id, title from teams"
Dim DS As SqlDataReader
DS = myCmd.ExecuteReader
chklistTeams.DataValueField = "id"
chklistTeams.DataTextField = "title"
chklistTeams.DataSource = DS
chklistTeams.DataBind()
DS.Close()
当点击保存按钮时,会调用一个 javascript 函数。这是被调用的函数的一部分,它应该让我们得到项目的值。
var checkList = document.getElementById('chklistTeams');
var checkBoxList = checkList.getElementsByTagName("input");
var checkBoxSelectedItems = new Array();
for (var i = 0; i < checkBoxList.length; i++) {
if (checkBoxList[i].checked) {
checkBoxSelectedItems.push(checkBoxList[i].value);
alert('checked - checkBoxList[i]: ' + checkBoxList[i].value)
}
}
存储到数组中的所有值(通过警报测试) - 以“on”值返回 - 所以我检查了此列表中复选框的 html,这是其中一个复选框的结果
<input name="chklistTeams:21" id="chklistTeams_21" type="checkbox" value="on"/>
我确信这些值已正确绑定到列表 - 因为在获取它们的值的旧方式中,您会获得该项目的正确整数值 - 下面列出的是用于处理此问题的 VB 代码(并返回一个字符串整数,取决于选中了多少个框 - 没有返回值“on”的列表)。我需要能够通过 javascript 获取此信息,以便我们在此页面上进行的另一项修改,我们现在必须使用 PageMethods 保存,并且不能在后端使用公共共享功能
VB 代码将在复选框列表中获取选中项的正确值
For Each li In chklistTeams.Items
If li.Selected = True Then
strTeamList = strTeamList & li.Value & ","
bolTeamSelected = True
End If
Next
If bolTeamSelected = True Then
strTeamList = strTeamList.Substring(0, strTeamList.Length - 1)
End If
谁能明白为什么获取值的 javascript 方式是给我“on”而不是像 VB 方式那样的整数值?再次感谢您的帮助。再次 - 这必须在 JS 中完成 - 由于函数是公共和共享的,因此不能使用背后的 VB 代码。谢谢。