Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Mailho

configurar GridView inteiramente por codigo (c#)

Recommended Posts

Pessoal, alguem pode me ensinar como eu faço pra configurar um GridView (asp.net,C#)? usando um banco de dados ORAcle (pl/sql).

Tipo, eu sei como fazer pelo Design atraves da Smart Tag; mas preciso fazer por codigo mesmo. Eu procurei e encontrei alguma coisa, mas ainda nao ta funfando. o codigo que eu tenho peguei no site MSDN (http://msdn.microsoft.com/pt-br/library/cc518055.aspx).

 

deve funcionar assim:

 

no gridView deverao haver esses campos

Nome, Tel , Responsavel , botao Historico , Botao Editar

 

 

sendo que o campo Nome e Tel sao da mesma tabela, e o campo Responsabel pertence a outra tabela.

 

bom esse é o primeiro passo! eu to a um tempao tentando e meu grid ta todo bixado! se puderem me ajudar seria muito bom.

vlw desde ja.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De uma olhada nesse artigo: http://www.quintelab.com.br/ShowArtigos.asp?codigo=4

Lógico que ignore a parte de formatar as colunas, o que vai precisar é adicionar suas manualmente na grid e mudar sua conexão para o Oracle, consequentemente ao invés de utilizar SqlConnection, você provavelmente utilizará OracleConnection ou OleDbConnection e assim por diante.

 

Em relação a conexão de uma olhada nesse site: http://www.connectionstrings.com/

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara...sou iniciante tb.. e estou fazendo a mesma coisa que você...setando o grid na unha.

a dica que me passaram foi a seguinte...

desativa a opção autogenerate

insere os campos boundfield na grid definindo na headertext (titulo) e datafield(campo) somente os campos que você precisa

vincula o datasource

executa o databind() que fica somente com os campos que você precisa

 

qquer duvida, estamos aqui

 

abraço

 

peterson

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok quintelab eu configurei o grid e ele ja ta puxando os dados do banco! tipo, agora como eu faço pra editar a grid? tipo, o nome da header, cor, espaço, etc. parece que pela aba design ele nao aceita. Acho que o caminho é isso mesmo que o Peterson disse! a pergunta é: como eu faço isso? Eu vou dar uma vasculhada aqui e se achar eu posto; mas se puderem me ajudar enquanto isso seria bom ^^.

 

tipo, eu consegui alargar as colunas pelo codigo : " e.Row.Cells[0].Width = 100;" no c#. mas tentei mudar a cor pelo css mas só consegui alterar o background e nao a cor das letras mesmo! como eu faço isso exatamente?

 

 

outra coisa quintelab, se eu uso o codigo :

 

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
	{
		if (e.Row.RowType = DataControlRowType.DataRow)
		{
			string vData = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "DATAINCL"));
			vData = String.Format("{0:d}", Convert.ToDateTime(vData));
			e.Row.Cells[3].Text = vData;
		}
	}

ele me retorna esse erro:

Cannot implicitly convert type 'System.Web.UI.WebControls.DataControlRowType' to 'bool'

 

 

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom que você fez eu ver um erro no artigo do meu site.

O erro esta no if, o correto é:

 

if (e.Row.RowType == DataControlRowType.DataRow)

Com dois sinais de igual, fiz confusão quando escrevi o vb e o C#.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora ele da o seguinte erro:

 

"String was not recognized as a valid DateTime."

 

nessa linha:

 

vData = String.Format("{0:d}", Convert.ToDateTime(vData));

 

 

ok, quanto a minha outra pergunta, como eu faço para editar o gridView? o comando css nao estava funcionando! tem como editar inteiramente por codigo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao o vData ja ta funfando \0/, quanto ao css, eu acho que ja tinha visto o forum, tentei criar uma cssClass no campo HeaderStyle mas ele só editou o background, e nao o color.

Compartilhar este post


Link para o post
Compartilhar em outros sites

css:

 

.gridHeader
{
   color: #FFFFFF;
}

 

tentei usando #gridHeader ma tambem nao funcionou.

 

<HeaderStyle  width="200px" BackColor="#4A3C8C" CssClass="gridHeader" Font-Bold="True" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está certinho, o arquivo css está sendo encontrado pela página?

Coloca seu código css na página, não em um arquivo separado, e testa.

Tenta dar uns CTRL+F5 ao invés de F5, isso vai atualizar o cache.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao, contanto que funcione pode ser css ou c# xD. O que eu precisava mesmo é editar o cabeçalho das colunas do gridView! tipo, como eu to chamando por c# ele mostra no cabeçalho (header) o nome da coluna no banco! como eu edito?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja tentou isso aqui:

 

e.Row.ForeColor = System.Drawing.Color.Gray;

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe uma propriedade HeaderText no em cada coluna, é só mudar para o valor que você precisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vixi! o e.Row.ForeColor = System.Drawing.Color.Gray; nao mudo nada, eu adicionei aqui:

 

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
	{
	   
			e.Row.Cells[0].Width = 70;
			e.Row.Cells[0].Height = 17;
			e.Row.Cells[1].Width = 110;
			e.Row.Cells[0].Height = 17;
			e.Row.Cells[2].Width = 110;
			e.Row.Cells[0].Height = 17;
			e.Row.Cells[3].Width = 120;
			e.Row.Cells[0].Height = 17;
			e.Row.Cells[4].Width = 80;
			e.Row.Cells[0].Height = 17;
			e.Row.ForeColor = System.Drawing.Color.Brown;
	}

e quanto ao headerText, tipo, eu adicionei as colunas puxando elas direto do banco! eu nao adicionei cada coluna, entao nao da pra altera pela opção edit columns (foi dessa maneira que voce tinha dito?)

 

:unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

vixi! o e.Row.ForeColor = System.Drawing.Color.Gray; nao mudo nada, eu adicionei aqui:

 

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

 

e.Row.Cells[0].Width = 70;

e.Row.Cells[0].Height = 17;

e.Row.Cells[1].Width = 110;

e.Row.Cells[0].Height = 17;

e.Row.Cells[2].Width = 110;

e.Row.Cells[0].Height = 17;

e.Row.Cells[3].Width = 120;

e.Row.Cells[0].Height = 17;

e.Row.Cells[4].Width = 80;

e.Row.Cells[0].Height = 17;

e.Row.ForeColor = System.Drawing.Color.Brown;

}

 

e quanto ao headerText, tipo, eu adicionei as colunas puxando elas direto do banco! eu nao adicionei cada coluna, entao nao da pra altera pela opção edit columns (foi dessa maneira que voce tinha dito?)

 

:unsure:

Aqui muda tenho aqui testado e funcionando.Tem certeza que ta disparando esse evento seu grid?

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua grid tem a propriedade AutoGenerateFields = "true"?

Você pode fazer assim:

 

grid.Columns[0].HeaderText = "Teste";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer assim no evento RowDataBound.

if (e.Row.RowType == DataControlRowType.Header) //somente o header
{
	e.Row.ForeColor = System.Drawing.Color.Red; //mudar texto para cor vermelha
	e.Row.Cells[0].Width = new Unit(100); //100px de largura
	e.Row.Cells[1].Width = new Unit(400); //400px de largura
	e.Row.Cells[0].Text = "Nome do Aluno";  //header da primeira coluna
	e.Row.Cells[1].Text = "Idade do Aluno"; //header da segunda coluna
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.