Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di jesus
    Registrato dal
    Jan 2002
    Messaggi
    717

    [C#] Datagrid Evento PageIndexChanged non funziona

    Salve a tutti.

    Sto provando ad inserire la paginazione ad un datagrid, ho creato l'evento corrispondente agganciandolo nella routine InitializeComponent().
    Il problema è che questo evento, quando faccio clic su un numero di pagina, non parte (ho messo un breakpoint in debug e non ci passa) e la griglia sparisce. Eppure ho utilizzato la stessa procedura per agganciare l'evento ItemDataBound del datagrid e funziona perfettamente. Cosa può essere?

    Posto anche un pò di codice:

    codice:
    /* html */
    
    ...
    
    <asp:datagrid id="tblResults" runat="server" gridlines="none" headerstyle-cssclass="heading" cssclass="grid"
    							autogeneratecolumns="false" allowpaging="true" pagesize="1" enableviewstate="True">
    							<pagerstyle mode="NumericPages" position="TopAndBottom"></pagerstyle>
    						</asp:datagrid>
    ...
    
    
    
    /* code behind */
    
    private void tblResults_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    		{
    			tblResults.CurrentPageIndex = (int)e.NewPageIndex;
    			display_bugs();
    		}
    
    .
    .
    .
    
    
    private void InitializeComponent()
    		{    
    			this.query.SelectedIndexChanged += new System.EventHandler(this.query_SelectedIndexChanged);
    			this.tblResults.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.tblResults_ItemCreated);
    			this.tblResults.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.tblResults_PageIndexChanged);
    			this.tblResults.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.tblResults_ItemDataBound);
    			this.Unload += new System.EventHandler(this.Page_Unload);
    			this.Load += new System.EventHandler(this.Page_Load);
    
    		}
    <%= Jesus %>
    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna" - Albert Einstein.

  2. #2
    Utente di HTML.it L'avatar di jesus
    Registrato dal
    Jan 2002
    Messaggi
    717
    Nessuno mi può aiutare?

    up
    <%= Jesus %>
    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna" - Albert Einstein.

  3. #3
    Io per utilizzare la paginazione ho dovuto fare in 2 modi.

    1) Ho utilizzo il ViewState
    2) Ho quando clicco sul pulsante della paginazione rifaccio il bind della griglia e in questo caso l'evento si scatena.

    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    c'è una sub.. ehm scusa void, di questo tipo?
    codice:
    override protected void OnInit(EventArgs e)
    {
      //
      // CODEGEN: This call is required by the ASP.NET Web Form Designer.
      //
      InitializeComponent();
      base.OnInit(e);
    
    }

  5. #5
    Utente di HTML.it L'avatar di jesus
    Registrato dal
    Jan 2002
    Messaggi
    717
    Originariamente inviato da sms
    c'è una sub.. ehm scusa void, di questo tipo?
    codice:
    override protected void OnInit(EventArgs e)
    {
      //
      // CODEGEN: This call is required by the ASP.NET Web Form Designer.
      //
      InitializeComponent();
      base.OnInit(e);
    
    }
    Si esattamente è quella che crea in automatico Visual Studio .NET 2003, che richiama la sub (void) InitializeComponent che aggancia gli eventi.
    <%= Jesus %>
    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna" - Albert Einstein.

  6. #6
    Utente di HTML.it L'avatar di jesus
    Registrato dal
    Jan 2002
    Messaggi
    717
    Ciao a tutti, sono riuscito a risolvere il problema. Il motivo non lo so ma basta aggiungere una BoundColumn in progettazione, anche vuota ed invisibile, e magicamente l'evento di paginazione scatta:
    codice:
    <asp:datagrid id="tblResults" runat="server" gridlines="none" headerstyle-cssclass="heading" cssclass="grid"
      autogeneratecolumns="false" allowpaging="true" pagesize="1" enableviewstate="True">
      <pagerstyle mode="NumericPages" position="TopAndBottom"></pagerstyle>
      <columns>
        <asp:boundcolumn visible="False"></asp:boundcolumn>
      </columns>
    </asp:datagrid>
    :master:
    <%= Jesus %>
    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna" - Albert Einstein.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.