2012-09-13 3 views
0

J'ai le suivi aspx Pageerreur lorsque je clique sur un bouton

<asp:Content ID="Content2" ContentPlaceHolderID="contentConteudo" runat="server">   
    <table border="0" width="680" style="background-color:#f0f0f0" id="tabelaPrincipal" runat="server"> 
     <tr> 
      <td style="width: 180px !important;">    
       <asp:RadioButtonList ID="rbBuscas" runat="server"> 
        <asp:ListItem Selected="True">Novo Curso</asp:ListItem> 
        <asp:ListItem>Buscar Lista de Presença</asp:ListItem> 
       </asp:RadioButtonList>   
      </td> 
      <td> 
       Data: <br /> 
       <input id="DtBusca" type="text" />     
       <asp:Button id="btnSelecionarData" runat="server" Text="Buscar" /> 
      </td> 
     </tr> 
    </table> 


    <br /><br /> 
    <div id="infoGrid" runat="server"> 
     <cc1:GridView ID="grdImoveis" CssClass="StyleGrid" Width="100%" runat="server" ShowHeader="false" 
      AutoGenerateColumns="False" DataSourceID="dsGrid" BorderWidth="0px" GridLines="None" 
      AllowPaging="True" EnableModelValidation="True"> 
      <AlternatingRowStyle BackColor="White" CssClass="EstiloDalinhaAlternativaGrid" HorizontalAlign="Center" /> 
      <RowStyle CssClass="EstiloDalinhaGrid" HorizontalAlign="Center" /> 
      <Columns> 
       <asp:TemplateField HeaderText="Nome"> 
        <ItemTemplate> 
         <div class="<%# Eval("Usuario_Id").ToString() %>"> 
          <%# Eval("NomeCompleto").ToString() %> 
         </div> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField HeaderText="Cargo" DataField="DescricaoCargo1" /> 
       <asp:BoundField HeaderText="Data Cadastro" DataField="DataHora" /> 
       <asp:TemplateField ControlStyle-CssClass="acoes_lista_imovel" HeaderText="Curso"> 
        <ItemTemplate> 
         <div class="acoes_lista_imovel"> 
          <%# montaIcones(Eval("Usuario_Id").ToString())%> 
         </div> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <div> 
          <%# montaIconesDocumentacao(Eval("Usuario_Id").ToString())%> 
         </div> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </cc1:GridView> 
     <asp:SqlDataSource ID="dsGrid" runat="server"></asp:SqlDataSource> 
    </div> 
    <span id="printContrato" class="diasRelatorio btStep ui-button ui-widget ui-state-default ui-corner-all"></span> 


</asp:Content> 

Le problème se produit lorsque je clique dans mon , je tryied de mettre l'événement OnClick, mais arrive toujours l'erreur.

<asp:Button id="btnSelecionarData" runat="server" Text="Buscar" />

erreur

Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.

CODE DERRIÈRE

public partial class ListaUsuarioProvisorio : System.Web.UI.Page 
    { 
     neticonn.Conexao c = new neticonn.Conexao(); 
     Utilidade.QuebraToken tk = new Utilidade.QuebraToken(); 
     public string icones = string.Empty; 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       this.CarregaLista(); 
      } 
     } 

     protected void CarregaLista() 
     { 
      string select = string.Empty; 
      select += "SELECT San_Credenciada.Apelido, San_Usuario.NomeCompleto, San_Usuario.Usuario_Id, San_Usuario.DescricaoCargo1, " 
       + "CONVERT(varchar, San_Usuario.DataHora, 103) AS DataHora " 
       + "FROM San_Usuario " 
       + "JOIN San_Credenciada " 
       + "ON San_Usuario.Credenciada_Id = San_Credenciada.Credenciada_Id " 
       + "WHERE San_Usuario.Provisorio = 1 " 
       + "AND San_Usuario.Excluido = 0 " 
       + "GROUP BY San_Credenciada.Apelido, San_Usuario.NomeCompleto, San_Usuario.Usuario_Id, " 
       + "San_Usuario.DescricaoCargo1, San_Usuario.DataHora " 
       + "ORDER BY San_Usuario.DataHora ASC "; 

      dsGrid.ConnectionString = c.Con; 
      dsGrid.SelectCommand = select; 
      dsGrid.Dispose(); 

      GridViewHelper helper = new GridViewHelper(this.grdImoveis); 
      helper.RegisterGroup("Apelido", true, true);    
      helper.GroupHeader += new GroupEvent(helper_GroupHeader); 
      helper.ApplyGroupSort(); 
     } 

     protected void CarregaLista(string data) 
     { 
      string select = string.Empty; 
      select += "SELECT San_Credenciada.Apelido, San_Usuario.NomeCompleto, San_Usuario.Usuario_Id, San_Usuario.DescricaoCargo1, " 
       + "CONVERT(varchar, San_Usuario.DataHora, 103) AS DataHora " 
       + "FROM San_Usuario " 
       + "JOIN San_Credenciada " 
       + "ON San_Usuario.Credenciada_Id = San_Credenciada.Credenciada_Id " 
       + "JOIN San_UsuarioCurso " 
       + "ON San_Usuario.Usuario_Id = San_UsuarioCurso.Usuario_Id " 
       + "WHERE San_Usuario.Provisorio = 1 " 
       + "AND San_Usuario.Excluido = 0 " 
       + "AND San_UsuarioCurso = " + data + " " 
       + "GROUP BY San_Credenciada.Apelido, San_Usuario.NomeCompleto, San_Usuario.Usuario_Id, " 
       + "San_Usuario.DescricaoCargo1, San_Usuario.DataHora " 
       + "ORDER BY San_Usuario.DataHora ASC "; 

      dsGrid.ConnectionString = c.Con; 
      dsGrid.SelectCommand = select; 
      dsGrid.Dispose(); 

      GridViewHelper helper = new GridViewHelper(this.grdImoveis); 
      helper.RegisterGroup("Apelido", true, true); 
      helper.GroupHeader += new GroupEvent(helper_GroupHeader); 
      helper.ApplyGroupSort(); 
     } 

     private void helper_GroupHeader(string groupName, object[] values, GridViewRow row) 
     { 
      string xCol = "#f56d01"; 
      string yCol = "#cbcbcb"; 
      Color c = System.Drawing.ColorTranslator.FromHtml(xCol); 
      Color c2 = System.Drawing.ColorTranslator.FromHtml(yCol); 

      if (groupName == "Apelido") 
      { 
       row.BackColor = c; 
       row.Cells[0].Text = "<div class='AgrupamentoPrincipal'>&nbsp;&nbsp;" + Maiscula(row.Cells[0].Text) + "</div>"; 
       row.Cells[0].Text += "</div><tr bgcolor=#e2dcd2 class=thGrid><th scope=col height='27'>&nbsp;Nome</th><th scope=col>Cargo</th><th>Data Cadastro</th><th scope=col>Curso Básico</th><th>Documentação Imobiliária</th></tr>";    
      } 
     } 

     protected string Maiscula(string texto) 
     { 
      texto = texto.ToUpper(); 
      return texto; 
     } 

     protected string montaIcones(string id) 
     { 
      icones = string.Empty;    
      int Credenciada = Convert.ToInt32(tk.CarregaToken(1, Request.Cookies["token"].Value)); 
      icones = "<img src='../tema/default/icon/icon-cinza/check.png' onclick=\"Visibilidade('" + id + "', '" + id + "', '" + Credenciada + "')\" style='cursor:pointer;margin: 4px;text-align:center;' ID='" + id + "' />"; 
      return icones; 
     } 

     protected string montaIconesDocumentacao(string id) 
     { 
      icones = string.Empty; 
      int Credenciada = Convert.ToInt32(tk.CarregaToken(1, Request.Cookies["token"].Value)); 
      icones = "<img src='../tema/default/icon/icon-cinza/documents.png' onclick=\"VisibilidadeDocumentacao('" + id + "', 'documentacao_" + id + "', '" + Credenciada + "')\" style='cursor:pointer;margin: 4px;text-align:center;' ID='documentacao_" + id + "' />"; 
      return icones; 
     } 

     public void btnSelecionarData_OnClick(object sender, EventArgs e) 
     { 
      if (this.rbBuscas.SelectedIndex == 1 && !this.DtBusca.Value.Equals(string.Empty)) 
      { 
       this.CarregaLista(this.DtBusca.Value); 
      } 
     } 
    } 
} 

Quelqu'un peut me aider?

+0

S'il vous plaît montrer le gestionnaire de bouton 'btnSelecionarData' – opewix

+0

Lorsque je tente mettre un 'OnClick' l'erreur se produire encore –

Répondre

1

Ce problème se produit généralement lorsque vous créez des contrôles personnalisés dans votre code. Je prendrais un coup d'œil à cet article, qui passe en profondeur sur l'origine du problème et comment vous pouvez repérer vérifier votre code pour ces questions:

http://blog.typps.com/2008/01/failed-to-load-viewstate-typical.html

+0

Ma page aspx, hériter de ma page maître, de sorte que le problème peut être dans ma page maître? –

+0

Oui, il peut s'agir de n'importe quel code qui s'exécute sur votre page, y compris les pages maîtres, les pages et les contrôles utilisateur. Selon l'article, vous devriez rechercher des changements de contrôle dynamique à l'intérieur des conditions, en particulier les différences entre la gestion de la charge initiale de la page par rapport à une publication. J'ajouterai que c'est l'une des erreurs les plus frustrantes dans ASP .net, car parfois il peut apparaître sans avertissement car il implique des conditions, donc parfois cela n'arrive pas tout le temps. –

+0

C'était un bon conseil, merci. Juste un petit commentaire, j'ai essayé de mettre un 'IsPostBack' dans mon chargement de page. Résultat: Lorsque ma page est chargée, mon 'GridView' n'est pas rempli, mais si je clique dans mon bouton, le' GridView' est rempli. Ce dont j'ai besoin est, quand la page est chargée, mon 'GridView' doit être rempli, et quand je clique dans mon bouton, j'ai besoin de remplir à nouveau mon' GridView' mais avec quelques paramètres différents que je passe, mais dans ce wy , se produit le problème 'viewstate'. –

Questions connexes