Jump to content

Archived

This topic is now archived and is closed to further replies.

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.

Share this post


Link to post
Share on other 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...

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

css:

 

.gridHeader
{
   color: #FFFFFF;
}

 

tentei usando #gridHeader ma tambem nao funcionou.

 

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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other sites

Ja tentou isso aqui:

 

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

Abs

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other 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:

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Sua grid tem a propriedade AutoGenerateFields = "true"?

Você pode fazer assim:

 

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

Share this post


Link to post
Share on other 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
}

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.