Usuário com melhor resposta
checkbox marcado em gridview

Pergunta
-
Olá pessoal,
estou carregando uma gridview com dados do banco e quero que o checkbox dentro da grid venha marcado se determinado campo no bd for "S".
Já consigo carregar a grid, mas o checkbox não está vindo marcado:
Public Sub SetInitialRowT()
Dim dt As DataTable = New DataTable()
Dim dr As DataRow = Nothing
dt.Columns.Add(New DataColumn("tpnota", GetType(System.String)))
dt.Columns.Add(New DataColumn("domT", GetType(System.Boolean)))
dt.Columns.Add(New DataColumn("segT", GetType(System.Boolean)))
dt.Columns.Add(New DataColumn("terT", GetType(System.Boolean)))
dt.Columns.Add(New DataColumn("quaT", GetType(System.Boolean)))
dt.Columns.Add(New DataColumn("quiT", GetType(System.Boolean)))
dt.Columns.Add(New DataColumn("sexT", GetType(System.Boolean)))
dt.Columns.Add(New DataColumn("sabT", GetType(System.Boolean)))
Dim Cn As New Conexao
Cn.Conecta()
Cn.Sql = "select tpnota, dom, seg, ter, qua, qui, sex, sab from brt_agenda_abast_tipo "
Cn.Sql = Cn.Sql & " where codfilcd = " & Session("FILIAL")
Cn.Sql = Cn.Sql & " union all"
Cn.Sql = Cn.Sql & " select distinct tpnota, null dom, null seg, null ter, null qua, null qui, null sex, null sab from brt_item_filial brt "
Cn.Sql = Cn.Sql & " where codfil = " & Session("FILIAL")
Cn.Sql = Cn.Sql & " and nvl(tpnota,0) > 0 "
Cn.Sql = Cn.Sql & " and nvl(coditprod,0) > 0 "
Cn.Sql = Cn.Sql & " and not exists(select 1 from brt_agenda_abast_tipo "
Cn.Sql = Cn.Sql & " where(codfilcd = brt.codfil) "
Cn.Sql = Cn.Sql & " and tpnota = brt.tpnota) "
Cn.Sql = Cn.Sql & " order by tpnota"
Cn.cmd.CommandText = Cn.Sql
Using reader As OleDbDataReader = Cn.cmd.ExecuteReader()
If reader.HasRows = True Then
While (reader.Read())
dr = dt.NewRow()
dr("tpnota") = reader("tpnota").ToString
For Each row As GridViewRow In gridTipo.Rows
Dim domT As CheckBox = CType(row.FindControl("cbDom"), CheckBox)
If reader("dom").ToString = "S" Then
domT.Checked = True
Else
domT.Checked = False
End If
Dim segT As CheckBox = CType(row.FindControl("cbSeg"), CheckBox)
If reader("seg").ToString = "S" Then
segT.Checked = True
Else
segT.Checked = False
End If
Dim terT As CheckBox = CType(row.FindControl("cbTer"), CheckBox)
If reader("ter").ToString = "S" Then
terT.Checked = True
Else
terT.Checked = False
End If
Dim quaT As CheckBox = CType(row.FindControl("cbQua"), CheckBox)
If reader("qua").ToString = "S" Then
quaT.Checked = True
Else
quaT.Checked = False
End If
Dim quiT As CheckBox = CType(row.FindControl("cbQui"), CheckBox)
If reader("qui").ToString = "S" Then
quiT.Checked = True
Else
quiT.Checked = False
End If
Dim sexT As CheckBox = CType(row.FindControl("cbSex"), CheckBox)
If reader("sex").ToString = "S" Then
sexT.Checked = True
Else
sexT.Checked = False
End If
Dim sabT As CheckBox = CType(row.FindControl("cbSab"), CheckBox)
If reader("sab").ToString = "S" Then
sabT.Checked = True
Else
sabT.Checked = False
End If
Next
dt.Rows.Add(dr)
ViewState("CurrentTableT") = dt
gridTipo.DataSource = dt
gridTipo.DataBind()
End While
End If
End Using
End Sub
Alguém pode me ajudar?
Respostas
-
Isso é uma aplicação WEB ou DESKTOP, por que não coloca o campo em questão (banco de dados) como um boolean
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
- Sugerido como Resposta Eduardo.RomeroModerator quinta-feira, 26 de março de 2015 16:43
- Marcado como Resposta Eduardo.RomeroModerator sexta-feira, 27 de março de 2015 11:50