Webly: Formatando Colunas Da Gridview Em Tempo De Execução - Webly

Ir para

Regras para postagem

É permitido postar livremente respostas com comentários, testes e avaliações dos scripts. Postagens contendo dúvidas sobre o script, deverão ser postadas no fórum principal de .NET.

IMPORTANTE: Todos os tutoriais postados neste fórum irão automaticamente para o portal Webly. Contribua você também e faça parte da equipe de colaboradores que fazem a evolução da web. Obrigado.
Página 1 de 1

Formatando Colunas Da Gridview Em Tempo De Execução Avaliar tópico: -----

#1 Membro offline   quintelab Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 10
  • Cadastrado: 23-setembro 08
  • Localização:Cuiabá - MT

Postou 29 setembro 2008 - 05:18

Este artigo mostra como formatar uma coluna da GridView deixando a propriedade Auto-Generate Fields como True.

Primeiramente criei uma tabela com o nome de MERCADORIAS nela foram criados apenas quatro campos, são eles: MERCADORIA_ID (int), MERCADORIA(nvarchar(50)), PRECO(numeric(18,2)) e DATA_CADASTRO(datetime).

Foram inseridos dois registros.
Imagem

Criaremos agora nosso formulário e nele iremos apenar adicionar uma GridView, não alterei nenhuma propriedade, o código HTML ficou da seguinte forma:
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>


Neste exemplo utilizei o banco de dados Sql Server e também iremos trabalhar com a classe DataSet. Para o nosso artigo var ser necessário importar duas classes.
Imports System.Data
Imports System.Data.SqlClient


No Page_Load do formulário vamos montar nossa Grid com os dados do banco.
Dim con As New SqlConnection("Data Source=QUINTELAB\SQLEXPRESS;Initial Catalog=Teste;User ID=sa; Pwd=senha;")
con.Open()

Dim da As New SqlDataAdapter("SELECT * FROM MERCADORIAS", con)
Dim ds As New DataSet

da.Fill(ds, "MERCADORIAS")
da.Dispose()
con.Close()

GridView1.DataSource = ds.Tables("MERCADORIAS").DefaultView
GridView1.DataBind()


No código acima criamos uma conexão com o nosso banco em Sql Server, um DataAdapter e um DataSet, depois de alimentado nosso DataSet. Populamos o nosso GridView com este DataSet.

Até agora, com o código, os nossos registros já podem ser visualizados em nossa Grid, mas sem formatação alguma.
Imagem

Agora vamos tratar em nossa Grid como formatar nossa coluna PRECO e nossa coluna DATA_CADASTRO.

Iremos trabalhar com o evento RowDataBound da Grid.
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
	If e.Row.RowType = DataControlRowType.DataRow Then
		Dim vPreco As String = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "PRECO"))
		vPreco = String.Format("{0:C2}", Convert.ToDouble(vPreco))
		e.Row.Cells(2).Text = vPreco

		Dim vData As String = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "DATA_CADASTRO"))
		vData = String.Format("{0:d}", Convert.ToDateTime(vData))
		e.Row.Cells(3).Text = vData
	End If
End Sub


Acima temos o nosso evento RowDataBound, primeiro fiz uma verificação para ter certeza que a linha é do tipo DataRow, pois temos ainda outros tipos como o Footer e o Header.
Depois de feita essa verificação foram declaradas as variáveis vPreco e vData que recebem respectivamente os campos do banco de dados PRECO e DATA_CADASTRO.
Após ter preenchido nossas variáveis iremos formatá-las conforme a nossa necessidade, formatando a variável vPreco com o Tipo Currency e já convertendo pro tipo Double. Formatamos a variável vData para mostrar apenas a data menosprezando a hora e convertendo para o tipo DateTime.
Depois que as variáveis já possuem os valores formatados, basta igualar nossas colunas da Grid a suas respectivas variáveis. Foi utilizado o índice da coluna pois coincide com o indice dos campos em nossa query.

Por fim nosso código completo fica da seguinte forma:
Imports System.Data
Imports System.Data.SqlClient

Partial Class _Default
	Inherits System.Web.UI.Page

	Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

		Dim con As New SqlConnection("Data Source=QUINTELAB\SQLEXPRESS;Initial Catalog=Teste;User ID=sa; Pwd=senha;")
		con.Open()

		Dim da As New SqlDataAdapter("SELECT * FROM MERCADORIAS", con)
		Dim ds As New DataSet

		da.Fill(ds, "MERCADORIAS")
		da.Dispose()
		con.Close()

		GridView1.DataSource = ds.Tables("MERCADORIAS").DefaultView
		GridView1.DataBind()
	End Sub

	Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
		If e.Row.RowType = DataControlRowType.DataRow Then
			Dim vPreco As String = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "PRECO"))
			vPreco = String.Format("{0:C2}", Convert.ToDouble(vPreco))
			e.Row.Cells(2).Text = vPreco

			Dim vData As String = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "DATA_CADASTRO"))
			vData = String.Format("{0:d}", Convert.ToDateTime(vData))
			e.Row.Cells(3).Text = vData
		End If
	End Sub
End Class


E com o código acima, temos o seguinte resultado:
Imagem

Versão C# --> http://www.quintelab...os.asp?codigo=4

Espero que seja útil. Abraços...
[url="http://quintelab.blogspot.com/"]http://[/url][url="http://www.quintelab.com.br"]www.quintelab.com.br[/url]
[url="http://quintelab.blogspot.com"]http://quintelab.blogspot.com[/url]
0

#2 Membro offline   David Cruvinel Ícone

  • Alguma Coisa!
  • Ícone
  • Grupo: Coordenadores
  • Posts: 1976
  • Cadastrado: 25-agosto 06
  • Localização:Guaxupé - MG

Postou 29 setembro 2008 - 05:46

:ohok:

bacana o artigo....
Portal Onde tem Festa - Divulgação e Cobertura de Eventos
www.ondetemfesta.com.br

DEC WebSites - Desenvolvimento de WebSites
www.decwebsites.com.br
0

Página 1 de 1


Resposta rápida

  

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)