Salve, sto cercando di paginare un gran numero di record tramite un datalist. Il mio approccio è stato: realizzare una stored procedure in sql server che restituisce i record paginati.
Posto il codice della stored
Questa stored funziona perfettamente, ora dovrei richiamarla in un sqldatasource, visualizzare i dati in un datalist ed avere i parametri di ritorno della stored in una variabile per il cambio di paginacodice:set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [xxxxxx].[ricerca_semplice] ( @numPag int ) AS declare @avanti int declare @indietro int declare @dimPag int declare @inizio int declare @fine int set @dimPag=10; set @inizio=(@numPag * @dimPag + 1); set @fine=(@numPag * @dimPag + @dimPag); set rowcount @dimPag declare @contatore int SET NOCOUNT ON BEGIN set @contatore = (SELECT count(*) from TD_SourcesTbl) SELECT * FROM ( SELECT ROW_NUMBER()OVER(ORDER BY [ID] ASC) AS [indiceRiga], * FROM TD_SourcesTbl ) AS T WHERE T.indiceRiga BETWEEN @inizio AND @fine DECLARE @PageNumber int DECLARE @PageSize int SET @PageNumber = 10; SET @PageSize = 20; END if @fine < @contatore set @avanti = @numPag + 1 set @indietro = @numPag - 1 if @numPag = 0 set @avanti = (@numPag + 1) set @indietro = 0 if @fine > @contatore set @avanti = 0 set @indietro = @numPag - 1 begin return @avanti return @indietro end
Richiamo stored
Inserisco i dati in un datalistcodice:<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:db_aziend %>" ProviderName="<%$ ConnectionStrings:db_aziend.ProviderName %>" SelectCommand="ricerca_semplice" SelectCommandType="StoredProcedure"> <SelectParameters> <asp:QueryStringParameter Name="numPag" QueryStringField="pagina" DefaultValue="0" Type="Int32" /> <asp:parameter Direction="ReturnValue" Type="Int32" Name="@avanti" /> </SelectParameters> </asp:SqlDataSource>
Ora non so come recuperare i miei valori in output per inserirli nel <footertemplate>.codice:<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1"> <ItemTemplate> <asp:Label ID="IDLabel" runat="server" Text='<%# Eval("Name") %>' /> </ItemTemplate> <footertemplate> </footertemplate> </asp:DataList>
Dovrei realizzare qualcosa del genere
<footertemplate>">avanti
E' possibile farlo in questo contesto, dovrei rivedere la mia stored perchè non mi restituisce i parametri giusti o dovrei utilizzare altri metodi per la paginazione?
Ringrazio anticipatamente chi potrà darmi una mano.

Rispondi quotando