2012-12-20 16:12:00nut
CheckBoxList 使用法
如何使用CheckBoxList
'將從DB取出來的CheckBoxList資料顯示於CheckboxList
Sub Get_CheckboxList()
sqlcmd.Length = 0
'從DB撈出資料, 放入DT
Dim dt As New DataTable
sqlcmd.Append("Select ID, NAME from AAA")
cmd.Connection = myconn
cmd.CommandText = sqlcmd.ToString
adp = New SqlDataAdapter(sqlcmd.ToString, myconn)
adp.Fill(dt) '塞入DT
'顯示於CHECKBOXList
Me.Ckblist.DataSource = dt
Me.Ckblist.DataValueField = dt.Columns("ID").ToString
Me.Ckblist.DataTextField = dt.Columns("NAME").ToString
Me.Ckblist.DataBind()
End Sub
'在js中, 取出被勾選的值
'付款方式 Payment
str += "var paymentValue = '';"
str += "var i = 0;"
str += "var j = 0;"
str += "var checkboxlist = document.getElementById('" & Me.Ckblist.ClientID & "');"
str += "for (i=0;i<checkboxlist.rows.length;i++)"
str += "{"
str += "for (j=0;j<checkboxlist.rows[i].cells.length;j++)"
str += "{"
str += "if (checkboxlist.rows[i].cells[j].childNodes[0].checked==true)"
str += "{"
str += "paymentValue = paymentValue + checkboxlist.rows[i].cells[j].childNodes[1].innerText +',';"
str += "}"
str += "}"
str += "}"
str += "if (paymentValue=='')"
str += "{"
str += "alert('請勾選!');"
str += "checkboxlist.rows[0].cells[0].focus();"
str += "return false;"
str += "}"
'vb後端 取出被勾選的值
Sub getSelectedcheckboxlist()
Dim SelectedValue As String = ""
For Each item As ListItem In Ckblist.Items
If item.Selected Then
SelectedValue &= item.Value & "," 'item.Value存值, item.Text存字樣
End If
Next
Me.Hidden_Payment.Value = SelectedValue
End Sub
'顯示資料
'重新再跑一次迴圈, 如果裡面選項的值跟資料庫的值一致 就勾選起來
'先把資料庫中的值切成array
'我是把勾選起來的值轉成字串再存入DB的, 如果勾選了A,B,C3項, 會轉成"A,B,C"這樣的字串存入DB
'所以取出時會先取得字串, 要再切成Ary, 一個個塞回控制項
Dim ary_payment As Array = ShowData_ary(25).ToString.Split(",") '切成array
For k = 0 To ary_payment.Length - 1
For Each item As ListItem In Ckblist.Items
If item.Value = ary_payment(k) Then
item.Selected = True
End If
Next
Next
'將從DB取出來的CheckBoxList資料顯示於CheckboxList
Sub Get_CheckboxList()
sqlcmd.Length = 0
'從DB撈出資料, 放入DT
Dim dt As New DataTable
sqlcmd.Append("Select ID, NAME from AAA")
cmd.Connection = myconn
cmd.CommandText = sqlcmd.ToString
adp = New SqlDataAdapter(sqlcmd.ToString, myconn)
adp.Fill(dt) '塞入DT
'顯示於CHECKBOXList
Me.Ckblist.DataSource = dt
Me.Ckblist.DataValueField = dt.Columns("ID").ToString
Me.Ckblist.DataTextField = dt.Columns("NAME").ToString
Me.Ckblist.DataBind()
End Sub
'在js中, 取出被勾選的值
'付款方式 Payment
str += "var paymentValue = '';"
str += "var i = 0;"
str += "var j = 0;"
str += "var checkboxlist = document.getElementById('" & Me.Ckblist.ClientID & "');"
str += "for (i=0;i<checkboxlist.rows.length;i++)"
str += "{"
str += "for (j=0;j<checkboxlist.rows[i].cells.length;j++)"
str += "{"
str += "if (checkboxlist.rows[i].cells[j].childNodes[0].checked==true)"
str += "{"
str += "paymentValue = paymentValue + checkboxlist.rows[i].cells[j].childNodes[1].innerText +',';"
str += "}"
str += "}"
str += "}"
str += "if (paymentValue=='')"
str += "{"
str += "alert('請勾選!');"
str += "checkboxlist.rows[0].cells[0].focus();"
str += "return false;"
str += "}"
'vb後端 取出被勾選的值
Sub getSelectedcheckboxlist()
Dim SelectedValue As String = ""
For Each item As ListItem In Ckblist.Items
If item.Selected Then
SelectedValue &= item.Value & "," 'item.Value存值, item.Text存字樣
End If
Next
Me.Hidden_Payment.Value = SelectedValue
End Sub
'顯示資料
'重新再跑一次迴圈, 如果裡面選項的值跟資料庫的值一致 就勾選起來
'先把資料庫中的值切成array
'我是把勾選起來的值轉成字串再存入DB的, 如果勾選了A,B,C3項, 會轉成"A,B,C"這樣的字串存入DB
'所以取出時會先取得字串, 要再切成Ary, 一個個塞回控制項
Dim ary_payment As Array = ShowData_ary(25).ToString.Split(",") '切成array
For k = 0 To ary_payment.Length - 1
For Each item As ListItem In Ckblist.Items
If item.Value = ary_payment(k) Then
item.Selected = True
End If
Next
Next