Alowpaging del gridview mi da errore

sabato 03 novembre 2012 - 11.58
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows 7  |  Visual Studio 2010

Fapic Profilo | Junior Member

Ciao a tutti raga,
utilizzo il seguente codice per popolare un gridview di immagini

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim dInfo As New DirectoryInfo(Server.MapPath(""))
GridView1.DataSource = From fileInfo In dInfo.GetFiles() Order By fileInfo.CreationTime Descending
GridView1.DataBind()

End Sub

il problema è che siccome la cartella ne contiene tantissime, vorrei fargliene caricare un po alla volta, ma se imposto la proprietà del gridview Allowpaging su true, questa al caricamento mi da errore.

Potete aiutarmi?

Gluck74 Profilo | Guru

sarebbe comodo sapere quale errore......

comunque dovrebbe essere il fatto che non puoi passare una query Linq direttamente al datasource, ma devi prima trasformarlo in un oggetto che implemente l'interfaccia giusta.
Basta restituire una Lista con il codice seguente:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
____________
http://glucolo.wordpress.com
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

Fapic Profilo | Junior Member

okFunziona ,però quando cambio pagina mi carica sempre le stesse immagini, cioè non va avanti in sequenza

ridaria Profilo | Expert

> .......però quando cambio pagina mi carica sempre le stesse
>immagini, cioè non va avanti in sequenza

Devi riBindare (rieseguuire il dataBind) ad ogni cambio di pagina.

Ciò lo devi fare nell'evento: GridView1_PageIndexChanging della GridView

In questo evento riesegui il bind dei dati e vedrai che visualizzerai i dati della pagina successiva

devi indicare però quale è il nuovo index di pagina e lo fai con la seguente istruzione:

GridView1.PageIndex = e.NewPageIndex

Il codice dovrebbe essere questo:

Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging

GridView1.PageIndex = e.NewPageIndex

Dim dInfo As New DirectoryInfo(Server.MapPath(""))
GridView1.DataSource = From fileInfo In dInfo.GetFiles() Order By fileInfo.CreationTime Descending
GridView1.DataBind()

End Sub

Fammi sapere :-)

CIAO

Riccardo D'Aria

Fapic Profilo | Junior Member

mi da errore su:

e.NewPageIndex

ridaria Profilo | Expert

Posta l'errore ed anche il codice che stai usando.


CIAO
Riccardo D'Aria

Fapic Profilo | Junior Member

questo è l'errore:

Server Error in '/' Application.

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: BC30456: 'NewPageIndex' is not a member of 'System.EventArgs'.

Source Error:


Line 33: Protected Sub GridView1_PageIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.PageIndexChanged
Line 34:
Line 35: GridView1.PageIndex = e.NewPageIndex
Line 36: Dim dInfo As New DirectoryInfo(Server.MapPath(""))
Line 37: GridView1.DataSource = From fileInfo In dInfo.GetFiles() Order By fileInfo.CreationTime Descending

Source File: D:\Inetpub\webs\ipcam\immagini.aspx.vb Line: 35


Show Detailed Compiler Output:


c:\windows\system32\inetsrv> "C:\WINDOWS\Microsoft.NET\Framework\v3.5\vbc.exe" /t:library /utf8output /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll" /R:"d:\temp\root\2d4e56f9\3605f2d7\App_Code.qwkjytwc.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Runtime.Serialization\3.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.WorkflowServices\3.5.0.0__31bf3856ad364e35\System.WorkflowServices.dll" /R:"C:\WINDOWS\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.IdentityModel\3.0.0.0__b77a5c561934e089\System.IdentityModel.dll" /R:"C:\WINDOWS\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Xml.Linq\3.5.0.0__b77a5c561934e089\System.Xml.Linq.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Core\3.5.0.0__b77a5c561934e089\System.Core.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Extensions\3.5.0.0__31bf3856ad364e35\System.Web.Extensions.dll" /R:"C:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" /R:"d:\temp\root\2d4e56f9\3605f2d7\assembly\dl3\3f6c14eb\3d333e45_9931cb01\office.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.ServiceModel\3.0.0.0__b77a5c561934e089\System.ServiceModel.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Data.DataSetExtensions\3.5.0.0__b77a5c561934e089\System.Data.DataSetExtensions.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.ServiceModel.Web\3.5.0.0__31bf3856ad364e35\System.ServiceModel.Web.dll" /out:"d:\temp\root\2d4e56f9\3605f2d7\App_Web_4xgifhpv.dll" /D:DEBUG=1 /debug+ /define:_MYTYPE=\"Web\" /imports:Microsoft.VisualBasic,System,System.Collections,System.Collections.Specialized,System.Configuration,System.Text,System.Text.RegularExpressions,System.Web,System.Web.Caching,System.Web.SessionState,System.Web.Security,System.Web.Profile,System.Web.UI,System.Web.UI.WebControls,System.Web.UI.WebControls.WebParts,System.Web.UI.HtmlControls /warnaserror- /optionInfer+ "d:\temp\root\2d4e56f9\3605f2d7\App_Web_4xgifhpv.0.vb" "d:\temp\root\2d4e56f9\3605f2d7\App_Web_4xgifhpv.1.vb" "d:\temp\root\2d4e56f9\3605f2d7\App_Web_4xgifhpv.2.vb"


Microsoft (R) Visual Basic Compiler version 9.0.30729.1
Copyright (c) Microsoft Corporation. All rights reserved.

D:\Inetpub\webs\ipcam\immagini.aspx.vb(35) : error BC30456: 'NewPageIndex' is not a member of 'System.EventArgs'.

GridView1.PageIndex = e.NewPageIndex
~~~~~~~~~~~~~~

Il cidice invece è questo:

Imports System.IO.Directory
Imports System.IO.DirectoryInfo
Imports System.IO
Imports System.Data
Imports System.Object
Imports System.IO.FileSystemInfo
Imports System.Text
Imports System.Linq

Partial Class ipcam_immagini
Inherits System.Web.UI.Page







Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


Dim dInfo As New DirectoryInfo(Server.MapPath(""))
GridView1.DataSource = (From fileInfo In dInfo.GetFiles() Order By fileInfo.CreationTime Descending).ToList()



GridView1.DataBind()



End Sub

Protected Sub GridView1_PageIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.PageIndexChanged

GridView1.PageIndex = e.NewPageIndex
Dim dInfo As New DirectoryInfo(Server.MapPath(""))
GridView1.DataSource = From fileInfo In dInfo.GetFiles() Order By fileInfo.CreationTime Descending
GridView1.DataBind()

End Sub
End Class

ridaria Profilo | Expert

>questo è l'errore:

>Compiler Error Message: BC30456: 'NewPageIndex' is not a member
>of 'System.EventArgs'.
>

>Il cidice invece è questo:
>
>Protected Sub GridView1_PageIndexChanged(ByVal sender As Object,
>ByVal e As System.EventArgs) Handles GridView1.PageIndexChanged

il problema risiede nel parametro assegnato alla sub, (e As System.EventArgs).
Affinché si possa ottenere il 'NewPageIndex' è necessario utilizzare come parametro nella sub:
GridViewPageEventArgs e NON: System.EventArgs

Pertanto sostituisci "e As System.EventArgs" con :
e As System.Web.UI.WebControls.GridViewPageEventArgs

e vedrai che NewPageIndex verrà visto e passato correttamente.

Per l'esattezza la dichiarazione della sub deve essere:
Protected Sub GridView1_PageIndexChanged(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanged

adesso non avrai problemi.
Fammi sapere

CIAO

Riccardo D'Aria

Fapic Profilo | Junior Member

Ciao scusami se ti ho risposto solo oggi:), lo sto controllando adesso, dunque, ho modificato il codice in questo modo:

Protected Sub GridView1_PageIndexChanged(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanged
GridView1.PageIndex = e.NewPageIndex
Dim dInfo As New DirectoryInfo(Server.MapPath(""))
GridView1.DataSource = From fileInfo In dInfo.GetFiles() Order By fileInfo.CreationTime Descending
GridView1.DataBind()

End Sub


ora non mi da piu errore ma quando clicco sulla seconda pagina carica le stesse immagini ed il gridview mi ritorna a selezionare l'1 della prima pagina

Gluck74 Profilo | Guru

certo, perché riassegni nuovamente il datasource alla griglia, che equivale a resettare tutto!!!!
nella PageIndexChanged, devi mettere SOLO queste 2 righe:
GridView1.PageIndex = e.NewPageIndex GridView1.DataBind()

P.S.: per favore usa anche tu il tag CODE quando devi scrivere del codice. Grazie
____________
http://glucolo.wordpress.com
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

ridaria Profilo | Expert

esatto ho preso le righe del databinding iniziale, come ha detto gluk

GridView1.PageIndex = e.NewPageIndex GridView1.DataBind()



Ciao spero adesso sia tutto ok.

Clicca su accetta se ritieni sia stato di aiuto a risolvere il problema
CIAO
Riccardo D'Aria

Fapic Profilo | Junior Member

fatto però quando clicco sull "2" della seconda pagina mi da questo errore:

The GridView 'GridView1' fired event PageIndexChanging which wasn't handled.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Web.HttpException: The GridView 'GridView1' fired event PageIndexChanging which wasn't handled.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[HttpException (0x80004005): The GridView 'GridView1' fired event PageIndexChanging which wasn't handled.]
System.Web.UI.WebControls.GridView.OnPageIndexChanging(GridViewPageEventArgs e) +1325766
System.Web.UI.WebControls.GridView.HandlePage(Int32 newPage) +86
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +464
System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument) +207
System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

ridaria Profilo | Expert

>fatto però quando clicco sull "2" della seconda pagina mi da
>questo errore:
>
>The GridView 'GridView1' fired event PageIndexChanging which
>wasn't handled.
>

ok Gestisci il new page nell'evento pageIndexChanging:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

e non in: Sub GridView1_PageIndexChanged

CIAO

clicca su accetta se tie stato tutto di aiuto


CIAO


Riccardo D'Aria

Fapic Profilo | Junior Member

funziona siete grandi
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5