2015-06-02 67 views
0

我將一個數據表綁定到一個GridView,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"/> 

回答

0

你的代碼是正確的,你可能不會得到,所以你需要使用Trim()方法也只是爲了確保您的病情進行檢查複選框,因爲一些值可以用空格在開始或結束時保存下來滿足呼叫ToUpper()將數據庫值轉換爲大寫,以便它與大寫Y匹配。

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

在該行代碼BC30201上得到一個錯誤:預期的表達式。 –

+0

假設你沒有給出正確的列名稱。 – Mairaj

相關問題