我在我的标记页面上:
<asp:CheckBox runat="server" ID="sections" class="checkAll" />
由于@Raminson,它使用jQuery进行checkall / uncheckall复选框。
然后我在代码文件上有这个: Me.sections.InputAttributes.Add(&#34; Value&#34;,&#34; Miracle Alley&#34;)
这很有效。
我现在遇到的问题是我们想要从数据库中动态填充复选框的值。
我有点卡住了。以下是我尝试这样做的事。
Imports System.Data.SqlClient
Partial Class _Default
Inherits System.Web.UI.Page
Private Sub Page_Load(ByVal sender As Object,
ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim strSQL As String = "SELECT section FROM myTable"
Dim connStr As String =
ConfigurationManager.ConnectionStrings("connstr").ConnectionString
Dim conn As New SqlConnection(connStr)
Dim cmd As New SqlCommand(strSQL, conn)
Dim objReader As SqlDataReader
objReader = cmd.ExecuteReader()
' ||||| Loop through the Reader to retrieve data
' ||||| and set each checkbox to appropriate data from datasource
While objReader.Read()
With objReader
sections.Checked = .Item("section")
End With
End While
Me.sessions.InputAttributes.Add("Value", "sections")
End If
End Sub
End Class
我很抱歉选择了c#和vb.net标签。任何口味的任何帮助将不胜感激。
其中一个问题是我一直收到此错误:
输入字符串的格式不正确。 就在这条线上:
sections.Checked = .Item(&#34; section&#34;)
我只是尝试将db field section的值赋给复选框值
答案 0 :(得分:0)
CheckBox控件在Web窗体页面上创建一个复选框 允许用户在true或false状态之间切换。
- http://msdn.microsoft.com/en-us/library/4s78d0k1(v=vs.71).aspx
我建议使用CheckBoxList而不是CheckBox。
标记:
<asp:CheckBox runat="server" ID="sections" CssClass="checkAll" />
<asp:CheckBoxList runat="server" ID="sect" CssClass="checkAll" >
</asp:CheckBoxList>
代码背后:
If Not Page.IsPostBack Then
Dim strSQL As String = "SELECT section FROM myTable"
Dim connStr As String = ConfigurationManager.ConnectionStrings("connstr").ConnectionString
Dim conn As New SqlConnection(connStr)
Dim cmd As New SqlCommand(strSQL, conn)
Dim objReader As SqlDataReader
objReader = cmd.ExecuteReader()
' ||||| Loop through the Reader to retrieve data
' ||||| and set each checkbox to appropriate data from datasource
While objReader.Read()
With objReader
Dim li As New ListItem(objReader(0).ToString())
sect.Items.Add(li)
End With
End While
End If
PS -
我收到包含class =“checkAll”值对的警告。
消息1验证(ASP.Net):属性“class”不是元素“CheckBox”的有效属性。
改为使用CssClass。
更新(添加选中/取消选中所有功能)
标记:
<asp:Button runat="server" ID="btnCheck" Text="Check All" OnClick="btnCheck_Click" />
<asp:Button runat="server" ID="btnUncheck" Text="Uncheck All" OnClick="btnUncheck_Click" />
代码背后:
Protected Sub btnCheck_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnCheck.Click
For Each listItem As ListItem In sect.Items
listItem.Selected = True
Next
End Sub
Protected Sub btnUncheck_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnUncheck.Click
For Each listItem As ListItem In sect.Items
listItem.Selected = False
Next
End Sub
不要忘记这些:
Protected WithEvents btnCheck As Button
Protected WithEvents btnUncheck As Button
答案 1 :(得分:0)
嗯,我会假设section列是bit类型的?如果是这样你可以使用reader对象的GetBoolean(0)方法,我对VB不太熟悉,但c#等价物将是sections.Checked = reader.GetBoolean(reader.GetOrdinal("section"));
希望这有帮助