alfinete
Power Member
c# asp.net
tenho este metodo para criar uma grid e puxar os dados para a mesma
tenho esta var protected
no page load tenho assim
codigo aspx
pucha o id regernte ao registo do botão clicado na grid
vai chamar o tipo de relatorio referente a var declarada no c#
o meu problema é que precisso de clicar 2 vezes no botão para mostrar o relatorio
como poderei resolver este prob
tenho este metodo para criar uma grid e puxar os dados para a mesma
Código:
private string paginaDados(DataTable dt)
{
string str = "";
string work = "";
//DateTime data;
//string wdata = "";
Dados d = new Dados();
foreach (DataRow dr in dt.Rows)
{
work = "<tr>";
work += "<td class=\"tdr1\">";
work += "<span class=\"spantxt\">" + dr[4].ToString() + "</span></td>";
work += "<td class=\"tdr2\">";
work += "<span class=\"spantxt2\">"+dr[1].ToString() + "</span></td>";
d.num_cand(dr[1].ToString());
work += "<td class=\"tdr3\">";
work += "<span class=\"tamanhonome\">" + d.Nome + "</span></td>";
work += "<td class=\"tdr4\">";
if (dr[11].ToString() != "")
{
work += "<span class=\"estad\">" + "T" + "</span></td>";
work += "<td class=\"tdr5\">";
work += "<span class=\"spanbtntrata1\"><input id=\"p" + dr[0].ToString() + "\" class=\"btn_2\" type=\"submit\" value=\"Validar\" disabled =\"disabled\" onclick=\"return colocaid(this.id)\" /></span></td>";
work += "<td class=\"tdr6\">";
work += "<span class=\"spanbtntrata1\"><input name=\"btrec\" id=\"q" + dr[0].ToString() + "\" class=\"btn_2\" type=\"submit\" value=\"Recibo\" onclick=\"return colocaid2(this.id)\" /></span></td>";
work += "</tr>";
str += work;
}
else
{
work += "<span class=\"estad\">" + " " + "</span></td>";
work += "<td class=\"tdr5\">";
work += "<span class=\"spanbtntrata1\"><input id=\"p" + dr[0].ToString() + "\" class=\"btn_2\" type=\"submit\" value=\"Validar\" onclick=\"return colocaid(this.id)\" /></span></td>";
work += "<td class=\"tdr6\">";
work += "<span class=\"spanbtntrata1\"><input name=\"btrec\" id=\"q" + dr[0].ToString() + "\" class=\"btn_2\" type=\"submit\" value=\"Recibo\" disabled =\"disabled\" onclick=\"return colocaid2(this.id)\" /></span></td>";
work += "</tr>";
str += work;
}
}
return str;
}
tenho esta var protected
Código:
protected string tiporelatorio;
no page load tenho assim
Código:
protected void Page_Load(object sender, EventArgs e)
{
Dados d = new Dados();
DataRow dr = null;
//DataRow dr1;
load_grid();
//Session["User"] = "400282";
if ((Session["User"] != null))
{
string val2 = Request.Form["idp2"];
// // valor do id do registo refente ao botão recibo escola
if (val2 != null)
{
if (val2 != "")
{
Session["idcand2"] = val2.Substring(1);
dr = d.dados_cand_id(Session["idcand2"].ToString());
Session["candidato"] = dr[1].ToString();
Session["idqzp"] = dr[4].ToString();
Session["idqzp2"] = dr[5].ToString();
tiporelatorio = dr[9].ToString();
// if (tiporelatorio == "1")
// Response.Redirect("rec1ano.aspx");
//if (tiporelatorio == "2")
// Response.Redirect("reclongapdf.aspx");
}
}
d.validacaoSedeAutonoma(Session["User"].ToString());
num_escola = Session["User"].ToString();
nome_escola=d.Nome_escola;
}
}
codigo aspx
Código:
<%@ Page Language="C#" Theme="Base" MasterPageFile="~/Base.Master" AutoEventWireup="true" CodeBehind="lista.aspx.cs" Inherits="Requisitos.lista" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cph" runat="server">
<script type="text/javascript">
function colocaid(id)
{
document.getElementById('idp').value = id;
}
function colocaid2(id)
{
document.getElementById('idp2').value = id;
var tiporelatorio = '<%= tiporelatorio %>';
if (tiporelatorio == '1')
window.open('rec1ano.aspx','_blank');
if (tiporelatorio == '2')
window.open('reclongapdf.aspx','_blank');
}
document.getElementById('content').style.height = '600px';
</script>
<fieldset>
<legend class="nomeEscola"><b> Lista de Candidatos da Escola <span class="azul"><%= nome_escola %>:- ( <% = num_escola %> ) </span> </b></legend>
<div class="item_grid_paging">
<%= tabela %>
</div>
<div class="mensagem_lista">
<asp:Label ID="lbmsg" runat="server" CssClass="clblinfo1"></asp:Label>
</div>
<input id="idp2" name="idp2" type="hidden" />
</fieldset>
</asp:Content>
pucha o id regernte ao registo do botão clicado na grid
Código:
document.getElementById('idp2').value = id;
vai chamar o tipo de relatorio referente a var declarada no c#
Código:
if (tiporelatorio == '1')
window.open('rec1ano.aspx','_blank');
if (tiporelatorio == '2')
window.open('reclongapdf.aspx','_blank');
o meu problema é que precisso de clicar 2 vezes no botão para mostrar o relatorio
como poderei resolver este prob