Ir para conteúdo

POWERED BY:

Arquivado

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

Lab Design

[Resolvido] Dica sobre o GRID

Recommended Posts

Eu venho do idos tempos de programação pre-windows e portanto tenho certos vicios que é dificil de mudar então as vezes a gente acaba fazendo muito mais do que devia nas ferramentas atuais.

 

Bom sou novo na plataforma net e portanto tenho muitas dúvidas e quebro muito a cara mas o google tá aí, o imasters tá ai sempre ajudando de uma forma ou de outra.

 

Bom, partindo do princípio numa programação php ou asp que eram minhas plataformas preferidas acontecia o seguinte:

Acessava a base de dados, formatava a tela vez em html vez no proprio script e portanto quando a página ia para o usuario, todos os dados se perdiam no servidor e caso eu precisasse vamos dizer gerar um email daqueles dados eu tinha que acessar novamente a database, ler todos os registros novamente... Eu entrei com essa idéia tambem no aspx mas depois vendo com mais calma eu vi que tinha acesso aos dados enviados para o usuário no code-behind e portanto fica tudo la sem precisar de sessions nada. então eu pensei já que é assim, vou tentar capturar esses dados para preparar por exemplo um email ou exportar esses dados pra um xls ou doc sei la sem que seja necessario acessar a database novamente. E num é que deu certo... Desculpe a minha ignorância para os mais preparados pois como disse antes eu to gatinhando nesta plataforma e tenho muito ainda a aprender sobre ela.

 

Para aqueles que ainda não observaram esse detalhe e continuam refazendo a roda abaixo um script que mostra a recuperação desses dados pra montagem de um email:

 

protected void sendmail(object sender, EventArgs e)

{

 

string eBody;

eBody = "<table border=0 cellpadding=0 cellspacing=2 width='100%'>" +

" <tr>" +

" <td class=label>Pedido Nr.:</td>" +

" <td class=value>" + String.Format("{0:D6}", Session["pedId"].ToString()) +

" </td><td class=label>Data:</td>" +

" <td class=value>" + String.Format("{0:dd/MM/yyyy}", DateTime.Now) + "</td>" +

" </tr>" +

" <tr>" +

" <td class=label>Distrib.:</td>" +

" <td class=value colspan='3'>" + Session["dstName"].ToString() + "</td>" +

" </tr>";

 

eBody += "<tr>" +

" <td class=label>E-mail:</td>" +

" <td class=value colspan='3'>" + Session["dstEmail"].ToString() +

"<tr><td class=label>Fone:</td>" +

" <td class=value>" + Session["dstFone"].ToString() + "</td>" +

" <td class=label>Contato:</td>" +

" <td class=value>" + Session["contato"].ToString() + "</td>" +

"</tr>" +

"</table>";

// até aqui ta ok agora a parte de itens

eBody += "<table border=0 cellpadding=0 cellspacing=2 width='100%'>" +

"<tr align=center bgcolor=red><td><b>Código</b></td><td><b>Descrição</b></td><td><b>Mod.</b></td><td><b>Quant.</b></td><td><b>Vr. Unit.</b></td><td><b>Total</b></td></tr>";

 

double totalGeral = 0;

foreach (GridViewRow row in GrdPedidoItens.Rows)

{

totalGeral += Convert.ToDouble(row.Cells[5].Text);

eBody += "<tr><td align=center>" + row.Cells[0].Text +

"</td><td>" + row.Cells[1].Text +

"</td><td align=center>" + row.Cells[2].Text +

"</td><td align=right>" + row.Cells[3].Text +

"</td><td align=right>" + row.Cells[4].Text +

"</td><td align=right>" + row.Cells[5].Text + "</tr>";

}

 

TextBox _obs = formAdd_obs;

eBody += "<tr bgcolor=red><td class=label colspan=5>Total Geral</td>" +

"<td class=value align=right>" + String.Format("{0:C}", totalGeral) + "</td>" +

"<tr><td colspan=6>"+ _obs.Text +

"</tr></table>";

 

// chama o class que envia o email

string sended = Ridgid.SendEmail.Sender(Session["dstName"].ToString(), Session["dstEmail"].ToString(), Session["dstEmail"].ToString(), "Canal de Distribuidores - Pedidos OnLine", eBody, true);

string check = sended.Substring(0, 25);

if (check == "Email enviado com sucesso")

{

mailOk.Visible = true; // imprime enviado com sucesso

}

else

{

mailErr.Visible = true; // ativa linha de erro

mailError.Text = "O erro retornado foi:" + sended.ToString(); // imprime o erro retornado do sender

}

}

Tá ai minha dica, espero que sirva de ajuda

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.