PageSize in un GridView dinamico

martedì 27 ottobre 2009 - 13.04

Gemini Profilo | Expert

Ciao a tutti
ho creato un gridview da codice:

GridView grwProdotti = new GridView();
grwProdotti.ID = "grwProdotti";
grwProdotti.BackColor = Color.White;
grwProdotti.EmptyDataText = "Nessun Prodotto Presente";
grwProdotti.EmptyDataRowStyle.CssClass = "testo";
grwProdotti.EmptyDataRowStyle.BackColor = Color.White;
grwProdotti.EmptyDataRowStyle.HorizontalAlign = HorizontalAlign.Center;
grwProdotti.AutoGenerateColumns = false;
grwProdotti.BorderWidth = Unit.Pixel(0);
grwProdotti.CellPadding = 1;
grwProdotti.CellSpacing = 1;
grwProdotti.ShowHeader = true;
grwProdotti.AllowPaging = true;
grwProdotti.AllowSorting = true;
grwProdotti.PageSize = 2;
grwProdotti.DataKeyNames = new string[] { "id_prodotto" };
grwProdotti.SelectedIndexChanged += new EventHandler(grwProdotti_SelectedIndexChanged);
grwProdotti.SelectedIndexChanging += new GridViewSelectEventHandler(grwProdotti_SelectedIndexChanging);
grwProdotti.RowDataBound += new System.Web.UI.WebControls.GridViewRowEventHandler(this.grwProdotti_RowDataBound);
grwProdotti.RowCreated += new System.Web.UI.WebControls.GridViewRowEventHandler(this.grwProdotti_RowCreated);
grwProdotti.PageIndexChanging += new System.Web.UI.WebControls.GridViewPageEventHandler(this.grwProdotti_PageIndexChanging);
grwProdotti.Sorting += new System.Web.UI.WebControls.GridViewSortEventHandler(this.grwProdotti_Sorting);
grwProdotti.RowStyle.CssClass = "testo";
grwProdotti.RowStyle.BackColor = Color.White;
grwProdotti.HeaderStyle.BackColor = Color.FromArgb(0, 150, 209);


Se non inserisco grwProdotti.PageSize = 2; il gridview viene caricato, quando inserisco grwProdotti.PageSize = 2; dopo aver eseguito in RowDataBound mi da un errore di 'Riferimento ad un oggetto non impostato', come mai?
Questo accade quando esegue l'ultimo ROwDataBound e compare una popup su grwProdotti.DataBind() con il messaggio ''Riferimento ad un oggetto non impostato'
Grazie mille

balfaz Profilo | Expert

c'è la faresti a fare un debug per poi illustrarci ciò che accade durante il rowdatabound?, il codice e chiaro ma non se capisce cosa vuoi fare e quando farlo, è più o meno come sè portase una macchina dal mecanico e li dico lo accendo e non va, vediamo un po cosa otteniamo.

Facci sapere
Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio

Gemini Profilo | Expert

Ciao,
io voglio creare un gridview da codice e voglio anche l'impaginazione.
Non riesco ad aggiugere l'impaginazione perchè quando inserisco PageSize nel codice mi da errore dopo aver eseguito il RowDataBound.
Il RowDataBound lo esegue correttamente perchè nel debug si vede che legge i dati. Il problema nasce dopo aver eseguito l'ultimo RowDataBound all'istruzione if (e.Row.RowType == DataControlRowType.DataRow si blocca e mi esce la popup con il messaggio di errore sul DataBind

Gluck74 Profilo | Guru

scusa ma non vedo la sorgente dati. cosa utilizzi?

Gemini Profilo | Expert

La sorgente dati è un datatable
ripeto, se non metto PageSize funziona

Gluck74 Profilo | Guru

strano, questo errore solitamente avviene con un datareader, che non supporta la paginazione.
mi faresti vedere il codice?

Gemini Profilo | Expert

Ti invio il codice del RowDataBound

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5