2015-06-02 1 views
0

Я привязываю данные к 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> 

Код Behind:

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() 

Edit: Получение BC30201 об ошибке: Выражение ожидалось. на данной линии:

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

Edit с ANSWER: я, наконец, получил его на работу, я обнаружил, что тройные операторы не существует в 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

Iguess, вы не указываете правильное имя столбца. – Mairaj

Смежные вопросы