【问题标题】:Binding datatable values into a checkbox that's placed inside GridView将数据表值绑定到放置在 GridView 内的复选框中
【发布时间】:2015-06-02 21:59:25
【问题描述】:

我正在将一个数据表绑定到一个 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" />

用 ANSWER 编辑:我终于让它工作了,我发现 VB 中不存在三元运算符。

<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("Approved").ToString().ToUpper().Trim() = "Y" %>' Enabled="false"/>

【问题讨论】:

    标签: asp.net gridview datatable


    【解决方案1】:

    您的代码是正确的,您可能没有检查复选框,因为某些值可能会在开头或结尾保存一个空格,因此您需要使用Trim() 方法也只是为了确保您的条件满足调用ToUpper() 将数据库值转换为大写,以便与大写 Y 匹配。

    <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("Approved").ToString().ToUpper().Trim() == "Y" ? true : false %>'
                                 Enabled="false" />
    

    【讨论】:

    • 在该行代码中出现错误,BC30201:预期表达式。
    猜你喜欢
    • 2011-11-16
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2017-04-14
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多