私のアプリケーションにはチェックボックスリストがあります。以下にリストされているのは、チェックボックス リストの 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)
}
}
配列に格納されるすべての値 (アラートでテスト済み) - 値「オン」で戻ってくるので、このリストのチェックボックスの html をチェックしました。チェックボックスの 1 つの結果は次のとおりです。
<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の方法が、VBの方法のように整数値ではなく「オン」になっている理由を誰でも見ることができますか? ご協力いただきありがとうございます。繰り返しますが、これは JS で行う必要があります。関数がパブリックで共有されているため、VB コード ビハインドを使用できません。ありがとう。