3
respostas

Como pegar objeto ativo do lado cliente no C#

Boa tarde pessoal.

Estou tentando exportar uma tabela com vários anos para o excel, e atualmente só está exportando para o ano atual. Na meu método de exportação tenho o parâmetro ano que está recebendo apenas 2018. Meu projeto está em ASP.NET e estou precisando fazer uma função no C# onde pego o ano da aba que está ativa e passar este ano para minha função. Desta forma acho que resolveria meu problema para exportar o ano correspondente da aba. Como faço para pegar o ano que está ativo na aba em C#?

Procedimento que estou tentando:

Do lado do servidor o seguinte método chamado no click do botão exportar:

protected void btnExportarExcel_Click(object sender, EventArgs e) { //Aqui quero pegar o ano ativo do lado cliente int ano = ???? carregaExportar(ano);

    }

Já tinha aberto uma discussão neste fórum, mas a princípio pediram para eu exportar três abas no excel(uma para cada ano). Mas agora mudaram de idéia e precisa selecionar aba do ano desejado e ao clicar no botão exportar - exibir os dados da aba referente aquele ano.

Obrigada. Flávia

3 respostas

Boa noite, Flávia! Como vai?

A princípio me parece que a sua pergunta seria melhor atendida pelo pessoal aqui do fórum se ela fosse feita na seção de .NET para web pois a dúvida me parece ser mais relacionada ao .NET em si.

Em todo caso, de modo geral, quando precisamos passar uma informação para o código que roda no back-end, o correto é submeter essa informação. No seu caso, no momento em que clicar no botão de exportar, vc pode utilizar o JS para verificar qual é a aba selecionada e enviar uma requisição AJAX para o servidor com essa informação.

O que vc acha da ideia? Faz sentido pra vc?

Qualquer coisa é só falar!

Grande abraço e bons estudos!

Bom dia Gabriel.

Tinha pensado em fazer deste jeito que falou, mas não vai ser possível, pois o método exportarExcel que tenho que chamar já está pronto, estou apenas mantendo e ele não pode ser estático. Para fazer pelo javascript teria que colocar o WebMethod e passar para estático. Estou tentando dar um jeito de pegar a aba selecionada do lado servidor, não sei se é possível, pois desta forma chamo o método passando o ano. Pensei em uma outra forma que seria montar três tabelas no método exportar, sendo uma para cada ano. Atualmente o código exportar está assim(trecho do código):

if (listaVariaveisDoIndicador.Count != 0) {

            //Para exportação em colunas
            tabelaExportacao.Append("<table id='tableExportacao'>");
            tabelaExportacao.Append("<tr><td colspan='3'> <b>" + listaVariaveisDoIndicador[0].Indicador.sigla + " - " + listaVariaveisDoIndicador[0].Indicador.nome + " </b></td></tr>");
            tabelaExportacao.Append("<tr><td><b>Sigla da Variável</b></td>");
            tabelaExportacao.Append("<td><b>Nome da Variável</b></td>");
            tabelaExportacao.Append("<td><b>Valor da Variável</b></td></tr>");


            //Para exportação em Bloco
            tabelaExportacaoBloco.Append("<table id='tableExportacaoBloco'>");
            tabelaExportacaoBloco.Append("<tr><td colspan='2'> <b>" + listaVariaveisDoIndicador[0].Indicador.sigla + " - " + listaVariaveisDoIndicador[0].Indicador.nome + " </b></td></tr>");
            tabelaExportacaoBloco.Append("</tr>");

Poderia montar uma tabela para cada ano?

A chamada está no aspx:

Só não sei como seria a chamada de três tabelas dependendo do ano ativo. Agradeço sua sugestão, vou postar em outro fórum.

Obrigada, Flávia

Flávia, com essa sua descrição melhor, mais ainda acho que a chance de vc encontrar uma ajuda mais eficaz ao seu problema seja no fórum de .NET mesmo!

Espero que por lá vc encontre a ajuda que deseja!

Grande abraço e bons estudos!