我将数据表绑定到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" />
使用ANSWER进行编辑:我终于开始工作,我发现VB中不存在三元运算符。
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("Approved").ToString().ToUpper().Trim() = "Y" %>' Enabled="false"/>
答案 0 :(得分:0)
您的代码是正确的,您可能无法选中要检查的复选框,因为某些值可能会在开头或结尾处保存一个空格,因此您需要使用Trim()
方法来确保您的条件满足调用ToUpper()
将数据库值转换为大写,以便与大写Y
匹配。
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("Approved").ToString().ToUpper().Trim() == "Y" ? true : false %>'
Enabled="false" />