botão so chama a 2ª

alfinete

Power Member
c# asp.net

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

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>&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

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
 
Back
Topo