将数据表值绑定到放置在 GridView 中的复选框中
Binding datatable values into a checkbox that's placed inside GridView
我正在将一个数据表绑定到一个 GridView,它的一个字段中有一个复选框。我无法根据数据表检查复选框。
这是我目前所拥有的:
<asp:TemplateField HeaderText="Approved" SortExpression="Approved">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("Approved").ToString() == "Y" ? true : false %>'
Enabled="false" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
隐藏代码:
Dim adp As SqlDataAdapter = New SqlDataAdapter(sqlcmd)
Dim ds As DataSet = New DataSet()
adp.Fill(ds, "table_name")
dt = New DataTable()
dt = ds.Tables("table_name")
GridView1.DataSource = dt
GridView1.DataBind()
编辑:收到错误 BC30201:需要表达式。在这一行:
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%#Eval("Approved").ToString() == "Y" ? true : false %>'
Enabled="false" />
编辑答案: 我终于让它工作了,我发现 VB.
中不存在三元运算符
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("Approved").ToString().ToUpper().Trim() = "Y" %>' Enabled="false"/>
你的代码是正确的,你可能没有让复选框被选中,因为一些值可能在开始或结束时用 space 保存,所以你也需要使用 Trim()
方法为确保您的条件满足调用 ToUpper()
将数据库值转换为大写,使其与大写匹配 Y
.
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("Approved").ToString().ToUpper().Trim() == "Y" ? true : false %>'
Enabled="false" />
我正在将一个数据表绑定到一个 GridView,它的一个字段中有一个复选框。我无法根据数据表检查复选框。
这是我目前所拥有的:
<asp:TemplateField HeaderText="Approved" SortExpression="Approved">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("Approved").ToString() == "Y" ? true : false %>'
Enabled="false" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
隐藏代码:
Dim adp As SqlDataAdapter = New SqlDataAdapter(sqlcmd)
Dim ds As DataSet = New DataSet()
adp.Fill(ds, "table_name")
dt = New DataTable()
dt = ds.Tables("table_name")
GridView1.DataSource = dt
GridView1.DataBind()
编辑:收到错误 BC30201:需要表达式。在这一行:
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%#Eval("Approved").ToString() == "Y" ? true : false %>'
Enabled="false" />
编辑答案: 我终于让它工作了,我发现 VB.
中不存在三元运算符<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("Approved").ToString().ToUpper().Trim() = "Y" %>' Enabled="false"/>
你的代码是正确的,你可能没有让复选框被选中,因为一些值可能在开始或结束时用 space 保存,所以你也需要使用 Trim()
方法为确保您的条件满足调用 ToUpper()
将数据库值转换为大写,使其与大写匹配 Y
.
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("Approved").ToString().ToUpper().Trim() == "Y" ? true : false %>'
Enabled="false" />