16 messaggi dal 05 ottobre 2004
Scusate se mi dilungo un pò... spero che qualcuno abbia il coraggio di LEGGERE fino in fondo!!!!!

Premessa : il primo datapager all'interno di una listview in cui uso il datacontext funziona perfettamente.
In questa seconda listview non ho potuto usare il datacontext. Sto utilizzando una stored procedure che legge delle tabelle temporanee e
presumo che qeuste tabelle diano dei problemi. L'Ho verificato dal .designer.cs
Per questa ragione ho utilizzato il metodo 'Tradizionale' che posto di seguito:

private void CaricaConsuntivi()
{
using (SqlConnection cnDbRilatt = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[NomeStringaConn].ConnectionString))
{
try
{
using (SqlCommand cmdSpGetListaConsuntivi = new SqlCommand())
{
RisultatoOut = "OK";

cmdSpGetListaConsuntivi.Connection = cnDbRilatt;
cnDbRilatt.Open();
cmdSpGetListaConsuntivi.CommandType = CommandType.StoredProcedure;
cmdSpGetListaConsuntivi.CommandText = "spRilatt_ListaConsuntivi";
cmdSpGetListaConsuntivi.Parameters.Add(new SqlParameter("@Coddip", Convert.ToInt32(ParentMasterPage.CodDip)));
cmdSpGetListaConsuntivi.Parameters.Add(new SqlParameter("@Anno", Convert.ToInt32(this.DDLAnno.SelectedValue)));

SqlParameter parm3=new SqlParameter("@RisultatoQuery",SqlDbType.VarChar);
parm3.Direction=ParameterDirection.Output;
parm3.Size = 2;
parm3.Value="OK";
cmdSpGetListaConsuntivi.Parameters.Add(parm3);

Consuntivi_Listview.DataSource = cmdSpGetListaConsuntivi.ExecuteReader();
Consuntivi_Listview.DataBind();
ecc..
Senza datapager il tutto funziona correttamente. Appena inserisco il datapager mi restituisce il seguente messaggio di errore: L'elemento ListView con ID 'Consuntivi_Listview' deve avere un'origine dati che implementi ICollection o che esegua il paging dell'origine dati se AllowPaging è true.
Qualche idea???? GRAZIE!!!!!!!!!!!!!

Steff
Il datareader non supporta la paginazione. Devi leggere i dati dal datareader ed inserirli in una "collection". L'ideale sarebbe usare un array di classi...ma non sai quanti elementi ti restituisce il datareader(questo problema lo ha anche il controllo di paginazione...per questo non funziona...)..Quindi puoi usare un ArrayList che si allunga automaticamente man mano che aggiungi elementi, poi o usi direttamente l'ArrayList come DataSource oppute usi la funzione ToArray per ottenere un array dall'arrayList.

Francesco Abbruzzese
16 messaggi dal 05 ottobre 2004
Grazie mille per la tua risposta... la vedo complicata :) :) (viste le mie scarse capacità in c#!!)
Mi sa che gestirò la paginazione modalità casareccia. Dal momento che è un mese che devo visualizzare inserirò una variabile nella stored procedure per capire se visualizzare la prima o la seconda quindicina e poi mi gestisco il pulsante della paginazione...
Grazie ancora :)

Steff

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.