Faccruz 0 Denunciar post Postado Março 20, 2009 Essa é a minha gridview hoje: Quero deixar ela com AutoSize, centralizar os dados na célula. Estou preenchendo ela em runtime Protected Sub btnLocaliza_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnLocaliza.Click gvCartelinha.DataSource = Nothing gvCartelinha.DataBind() Dim daMySQL As MySqlDataAdapter Dim dsMySQL As New DataSet Dim strSQL As String = "Select * from CARTELINHA where " ConMYSQL.Open() Try If rbtnList.SelectedIndex = 0 Then strSQL += "CPF like '%" & edtCPF.Text & "%';" daMySQL = New MySqlDataAdapter(strSQL, ConMYSQL) daMySQL.Fill(dsMySQL, "Cartelinha") Else strSQL += "NotaFiscal = " & edtNF.Text & ";" '' and DescLoja like '%" & cdLojas.SelectedValue & "%';" daMySQL = New MySqlDataAdapter(strSQL, ConMYSQL) daMySQL.Fill(dsMySQL, "Cartelinha") End If Call FormataGrid() gvCartelinha.AutoGenerateColumns = False gvCartelinha.DataSource = dsMySQL.Tables(0) gvCartelinha.DataBind() GoTo Fim Catch ex As Exception lblAvisos.Text = "Erro: " & ex.Message GoTo Fim End Try Fim: ConMYSQL.Close() ConMYSQL = Nothing daMySQL = Nothing dsMySQL = Nothing End Sub Formatando o cabeçalho da Grid Public Sub FormataGrid() Dim Loja As New BoundField Loja.HeaderText = "Num. Loja" Loja.DataField = "Loja" gvCartelinha.Columns.Add(Loja) Dim DescLoja As New BoundField DescLoja.HeaderText = "Cidade Loja" DescLoja.DataField = "DescLoja" gvCartelinha.Columns.Add(DescLoja) Dim Contrato As New BoundField Contrato.HeaderText = "Contrato" Contrato.DataField = "Contrato" gvCartelinha.Columns.Add(Contrato) Dim NF As New BoundField NF.HeaderText = "Nota Fiscal" NF.DataField = "NotaFiscal" gvCartelinha.Columns.Add(NF) Dim CPF As New BoundField CPF.HeaderText = "CPF" CPF.DataField = "CPF" gvCartelinha.Columns.Add(CPF) Dim Nome As New BoundField Nome.HeaderText = "Nome do Cliente" Nome.DataField = "NomeCliente" gvCartelinha.Columns.Add(Nome) Dim Serie As New BoundField Serie.HeaderText = "Serie" Serie.DataField = "SerieCartela" gvCartelinha.Columns.Add(Serie) Dim Sorteio As New BoundField Sorteio.HeaderText = "Num. Sorteio" Sorteio.DataField = "NumCartela" gvCartelinha.Columns.Add(Sorteio) End Sub Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 20, 2009 É que você tem muitos dados na grid, tente colocar apenas o necessário. Ou você pode usar um outro tipo de objeto como o DataList. Para centralizar faça: TableItemStyle style = new TableItemStyle(); style.VerticalAlign = VerticalAlign.Middle; Dai para cada objeto do tipo BoundField, adicione: seuBoundField.ItemStyle = style; Dica, sua grid vai sempre trazer a mesma quantidade de colunas? Se sim, faça essa formatação na página aspx. Adicione as colunas via C# apenas quando você não souber a quantidade de colunas ou o nome, por exemplo. Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 20, 2009 foi um pequeno erro que apareceu todas os campos tentei esse TableItemStyle mas qndo fui setar na propriedade ItemStyle do BoundField, deu um erro ItemStyle is ReadOnly Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 20, 2009 Verdade, testei agora e deu o mesmo erro. Faz assim: BoundField bd = new BoundField(); bd.ItemStyle.HorizontalAlign = HorizontalAlign.Center;Ai você pode remover o uso do TableItemStyle. Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 20, 2009 Valeu! funcionou... Agora como eu pego o CPF do banco e jogo uma mascara? sei que funciona com Valores e data, mas nunca fiz com CPF Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 20, 2009 De uma olhada neste artigo: http://www.linhadecodigo.com.br/Artigo.aspx?id=259 Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 20, 2009 Mais uma vez valeu Agora como limpo o GridView antes de realizar a segunda pesquisa? Pois qndo realizo a primeira pesquisa, traz normal, mas qndo vou executar outra pesquisa (dados diferentes) ele repete todos os dados Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 21, 2009 Isso não deveria estar acontecendo. 1) Remova isso: gvCartelinha.DataSource = Nothing gvCartelinha.DataBind()É desnecessário. 2) Coloque aqui o conteudo da página aspx. Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 23, 2009 Código da Página ASPX Imports MySql.Data.MySqlClient Imports System.Data Partial Public Class _Default Inherits System.Web.UI.Page Dim ConMYSQL As New MySqlConnection("server=LocalHost;user id=root;password=cyb04ibm;database=SiteCybelar") Dim Index As Integer, Selecionado As String Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then If rbtnList.SelectedIndex = 0 Then pnlCPF.Visible = True pnlNota.Visible = False Else pnlCPF.Visible = False pnlNota.Visible = True End If ''Carrega Cidades Cidades() End If End Sub Protected Sub rbtnList_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles rbtnList.SelectedIndexChanged If rbtnList.SelectedIndex = 0 Then pnlCPF.Visible = True pnlNota.Visible = False Else pnlCPF.Visible = False pnlNota.Visible = True End If End Sub Protected Sub btnLocaliza_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnLocaliza.Click Dim daMySQL As MySqlDataAdapter Dim dsMySQL As New DataSet Dim strSQL As String = "" ConMYSQL.Open() strSQL = "Select * from CARTELINHA" Try If rbtnList.SelectedIndex = 0 Then strSQL += " WHERE CPF like '%" & edtCPF.Text & "%';" daMySQL = New MySqlDataAdapter(strSQL, ConMYSQL) daMySQL.Fill(dsMySQL, "Cartelinha") Else If DropDownList1.SelectedIndex <> 0 Then strSQL += " WHERE NotaFiscal = " & edtNF.Text & " and Descloja LIKE '" & DropDownList1.SelectedItem.Text & "%';" daMySQL = New MySqlDataAdapter(strSQL, ConMYSQL) daMySQL.Fill(dsMySQL, "Cartelinha") Else lblAvisos.Text = "Escolha a loja" DropDownList1.Focus() Exit Sub End If End If Call FormataGrid(dsMySQL) lblAvisos.Text = strSQL Catch ex As Exception lblAvisos.Text = "Erro: " & ex.Message Finally ConMYSQL.Close() ConMYSQL = Nothing daMySQL = Nothing dsMySQL = Nothing End Try End Sub Public Sub FormataGrid(ByVal dsGrid As DataSet) Dim gvCartelinha As New GridView Dim Loja As New BoundField Loja.HeaderText = "Num. Loja" Loja.DataField = "Loja" Loja.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(Loja) Dim DescLoja As New BoundField DescLoja.HeaderText = "Cidade Loja" DescLoja.DataField = "DescLoja" DescLoja.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(DescLoja) Dim Contrato As New BoundField Contrato.HeaderText = "Contrato" Contrato.DataField = "Contrato" Contrato.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(Contrato) Dim NF As New BoundField NF.HeaderText = "Nota Fiscal" NF.DataField = "NotaFiscal" NF.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(NF) Dim CPF As New BoundField CPF.HeaderText = "CPF" CPF.DataField = "CPF" CPF.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(CPF) Dim Nome As New BoundField Nome.HeaderText = "Nome do Cliente" Nome.DataField = "NomeCliente" Nome.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(Nome) Dim Serie As New BoundField Serie.HeaderText = "Serie" Serie.DataField = "SerieCartela" Serie.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(Serie) Dim Sorteio As New BoundField Sorteio.HeaderText = "Num. Sorteio" Sorteio.DataField = "NumCartela" Sorteio.ItemStyle.HorizontalAlign = HorizontalAlign.Center gvCartelinha.Columns.Add(Sorteio) ''Dados da Grid gvCartelinha.AutoGenerateColumns = False gvCartelinha.DataSource = dsGrid.Tables(0) gvCartelinha.DataBind() Page.Form.Controls.Add(gvCartelinha) End Sub Public Sub Cidades() Dim strSQL As String = "Select * from Lojas order by Descricao;" Dim daMySQL As New MySqlDataAdapter(strSQL, ConMYSQL) Dim dsLoja As New DataSet Try ConMYSQL.Open() daMySQL.Fill(dsLoja, "Lojas") DropDownList1.DataTextField = "Descricao" DropDownList1.DataValueField = "Descricao" DropDownList1.DataSource = dsLoja.Tables("Lojas").DefaultView DropDownList1.DataBind() DropDownList1.Items.Insert(0, " -- Selecione a loja -- ") DropDownList1.SelectedIndex = 0 Catch ex As Exception Finally ConMYSQL.Close() End Try End Sub End Class Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 23, 2009 Acho que não é viável misturar os tópicos, é melhor criar outro. Vira bagunça no tópico. Crie outro que eu excluo esse post. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 23, 2009 Acho que não é viável misturar os tópicos, é melhor criar outro. Vira bagunça no tópico. Crie outro que eu excluo esse post. Abraços... Editei pra excluir a segunda parte do topico, só ficou o que interessava do pedido do topico anterior Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 24, 2009 De uma olhada neste artigo: http://www.linhadecodigo.com.br/Artigo.aspx?id=259 Abraços... Testei todos os formatos... nenhum funcionou... já tentei tbm DataFormatString = "{0:DDD\.DDD\.DDD\-DD}", DataFormatString = "{0:000\.000\.000\-00}", DataFormatString = "{0:0##\.###\.###\-##}" mas nada funcionou Lembando que estou criando o GridView em RunTime Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 24, 2009 Qual versão do Visual Studio você esta utilizando? Se for 2008 você deve alterar a propriedade HTMLEncode do seu campo. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 24, 2009 Qual versão do Visual Studio você esta utilizando? Se for 2008 você deve alterar a propriedade HTMLEncode do seu campo. Abraços... sim, é o 2008, mas é só mudar para TRUE? ou preciso fazer mais alguma coisa? Lembrando que estou criando em runtime o GridView Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 24, 2009 Você deve mudar a propriedade para false e alimentar a mascara como ja estava fazendo. Agora que lembrei que ja escrevi um artigo sobre isso: http://www.quintelab.com.br/ShowArtigos.asp?codigo=2 Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 24, 2009 Você deve mudar a propriedade para false e alimentar a mascara como ja estava fazendo. Agora que lembrei que ja escrevi um artigo sobre isso: http://www.quintelab.com.br/ShowArtigos.asp?codigo=2 Abraços... Legal seu artigo, mas estou criando o GridView em código, como faço para chamar Protected Sub GridView1_RowDataBound ? Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Março 24, 2009 Consegui resolver colocando o GridView na página, mas caiu na mesma imagem do primeiro post (qndo executo uma consulta seguida da outra) Usei a idéia do Artigo e acrencentei isso essa função: String.Format("{0:00000000000}", Convert.ToDouble(sCPF)).Insert(9, "-").Insert(6, ".").Insert(3, ".") Está funcionando perfeitamente. Compartilhar este post Link para o post Compartilhar em outros sites