View Full Version : botão so chama a 2ª


alfinete
10-04-2008, 17:15
c# asp.net

tenho este metodo para criar uma grid e puxar os dados para a mesma



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\">" + "&nbsp" + "</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

protected string tiporelatorio;

no page load tenho assim


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


<%@ 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>&nbsp;Lista de Candidatos da Escola <span class="azul"><%= nome_escola %>:- ( <% = num_escola %> ) </span>&nbsp;</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


document.getElementById('idp2').value = id;



vai chamar o tipo de relatorio referente a var declarada no c#


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