Ir para conteúdo

Arquivado

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

Miguel Angelo

Como imprimir linhas selecionadas no grid do aspnet

Recommended Posts

Bem galera é o seguinte...

 

Fiz um grid no visual studio com asp net e criei um relatório dos dados que aparecem no grid.

Criei um botão para imprimir que cria o pdf de todas as linhas do grid.

A questão é a seguinte como eu faço para "imprimir" apenas linhas selecionadas pelo usuário?

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma sugestão seria:

 

definir as colunas chaves para o objeto gridview:

String[] iKey = new String[2];
iKey[0] = "CHAVE_1";
iKey[1] = "CHAVE_2";
grvSeuGridView.DataKeyNames = iKey;

 

adicionar um checkbox no objeto gridview:

<Columns >                              
   <asp:TemplateField>
       <ItemTemplate>
           <asp:CheckBox ID="chkMarcar" runat="server" Checked="true" />
       </ItemTemplate>
       <HeaderTemplate>
           <asp:CheckBox ID="chkMarcarAll" runat="server" Checked="true" onclick="CheckAllSel(getElementById('form1'),'chkMarcar',this);" />
       </HeaderTemplate>
       <ItemStyle HorizontalAlign="Center" />
       <HeaderStyle HorizontalAlign="Center" />
   </asp:TemplateField>   

 

imprimir os marcados:

bool iMarcado = false;
foreach (GridViewRow iR in grvOprc.Rows)
{
   if (iR.RowType == DataControlRowType.DataRow)
   {
       CheckBox iChkMarcar = (CheckBox)iR.FindControl("chkMarcar");
       if (iChkMarcar != null && iChkMarcar.Checked)
       {
           iMarcado = true; 
           String iChave1 = grvContatos.DataKeys[iR.RowIndex].Values[0].ToString(); //recupera a chave 1
           String iChave2 = grvContatos.DataKeys[iR.RowIndex].Values[1].ToString(); //recupera a chave 2
           //guarda as chaves que foram selecionadas em algum lugar, session, list, array, etc
       }
   }
}

if (!iMarcado)
{
   // envia mensagem avisando que nenhum registro foi selecionado
}
else
{               
   // imprime as linhas guardadas anteriormente no loop acima

}

 

javscript para marcar todos:

function CheckAllSel(form, nome, campo) {
   window.status = "Por favor aguarde...";
   for (var i = 0; i < form.elements.length; i++) {
       var x = form.elements[i];

       if (x.name.search(nome) > -1) {
           x.checked = campo.checked;
       }
   }
   window.status = "Concluído";
}

 

OBS.1: Não testei pra ver se funciona esse lance do invisível, talvez tenha que fazer alguns ajustes, por favor se funcionar me avisa aqui e poste os ajustes

 

OBS.2: exemplo baseado no gridview do asp.net, não conheço devexpress, mas creio que deve ser semelhante os comandos, talvez com nomes diferentes

 

boa sorte!

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.