none
checkbox marcado em gridview RRS feed

  • 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?

    terça-feira, 24 de março de 2015 13:20

Respostas

  • Isso é uma aplicação WEB ou DESKTOP, por que não coloca o campo em questão (banco de dados) como um  boolean

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 24 de março de 2015 16:11