Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    paginazione dei risultati

    Salve a tutti, come da topic sapete come posso paginare i risultati di una query?
    C'è uno script su Aspitalia.com, ma non è il massimo, visto che ha il problema che se la query è suddivisa in 100 pagine, il controllo di mostra 100 link...
    Avete qualcosa di meglio?
    ciao e grazie

  2. #2
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    impagina i risultati in un datagrid!
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  3. #3
    Originariamente inviato da Francis87
    impagina i risultati in un datagrid!
    Devo utilizzare un repeater.

  4. #4
    apparte che non ci ho mai fatto caso, ma il repeater se ci sono 100 pagine le fa vedere tutte e 100?


    non c'è qualcosa del tipo

    1,2,3....

    poi se clicchi su 3

    ...3,4,5....


    questo sarebbe l'ideale...però se non lo fa in automatico bisgona farselo a manina credo.

  5. #5
    non capisco perchè devi utilizzare un repeater e non puoi utilizzare un datagrid.
    Se li metti in un datagrid con il paging ottieni degli ottimi risultati.

  6. #6
    Io avevo trovato questo (mai provato però)

    <script language="C#" runat="server">
    public void Page_Load(Object src,EventArgs e) {
    DataSet ds;
    //Instanciate Dataset
    PagedDataSource objPds = new PagedDataSource();
    objPds.DataSource = ds.Tables[0].DefaultView;
    objPds.AllowPaging = true;
    objPds.PageSize = 5;
    int CurPage;
    if (Request.QueryString["Page"] != null)
    CurPage=Convert.ToInt32(Request.QueryString["Page"]);
    else
    CurPage=1;

    objPds.CurrentPageIndex = CurPage-1;
    lblCurrentPage.Text = "Page: " + CurPage.ToString();

    if (!objPds.IsFirstPage)
    lnkPrev.NavigateUrl=Request.CurrentExecutionFilePa th + "?Page=" + Convert.ToString(CurPage-1);

    if (!objPds.IsLastPage)
    lnkNext.NavigateUrl=Request.CurrentExecutionFilePa th+ "?Page=" + Convert.ToString(CurPage+1);

    Repeater1.DataSource=objPds;
    Repeater1.DataBind();
    }
    < /script>
    And in the body of the page:
    <table width="100%" border="0">
    <tr >
    <td><asp:label ID="lblCurrentPage" runat="server"></asp:label></td>
    </tr>
    <tr >
    <td>
    <asp:HyperLink id="lnkPrev" runat="server"><< Prev</asp:HyperLink>
    <asp:HyperLink id="lnkNext" runat="server">Next >></asp:HyperLink></td>
    </tr>
    </table><asp:repeater ID="Repeater1" runat="server">
    <itemtemplate>
    <table width="100%" border="0">
    <tr >
    <td> <%# DataBinder.Eval(Container.DataItem, "Product") %> </td>
    </tr>
    <tr >
    <td> </td>
    </tr>
    </table>
    </itemtemplate>

  7. #7
    Brutalmente preso da .Net Framework. :gren:
    Chiaramente qui la tabella la crea lui, tu devi prelevare i dati dal tuo database.

    <%@ Page Language="VB" AutoEventWireup="True" %>
    <%@ Import Namespace="System.Data" %>

    <html>
    <script language="VB" runat="server">
    Dim Cart As DataTable
    Dim CartView As DAtaView

    Function CreateDataSource() As ICollection
    Dim dt As New DataTable()
    Dim dr As DataRow

    dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
    dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
    dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double)))

    Dim i As Integer
    For i = 0 To 99
    dr = dt.NewRow()

    dr(0) = i
    dr(1) = "Item " + i.ToString()
    dr(2) = 1.23 *(i + 1)
    dt.Rows.Add(dr)
    Next i

    Dim dv As New DataView(dt)
    Return dv
    End Function 'CreateDataSource

    Sub Page_Load(sender As Object, e As EventArgs)
    If Not IsPostBack Then
    ItemsGrid.DataSource = CreateDataSource()
    ItemsGrid.DataBind()
    End If

    If CheckBox1.Checked Then
    ItemsGrid.PagerStyle.Mode = PagerMode.NumericPages
    Else
    ItemsGrid.PagerStyle.Mode = PagerMode.NextPrev
    End If
    End Sub 'Page_Load

    Sub Grid_Change(sender As Object, e As DataGridPageChangedEventArgs)
    ItemsGrid.CurrentPageIndex = e.NewPageIndex
    ItemsGrid.DataSource = CreateDataSource()
    ItemsGrid.DataBind()
    End Sub 'Grid_Change
    </script>

    <body>
    <form runat=server>
    <h3>DataGrid Paging Example</h3>

    <aspataGrid id="ItemsGrid" runat="server"
    BorderColor="black"
    BorderWidth="1"
    CellPadding="3"
    AllowPaging="true"
    AutoGenerateColumns="false"
    OnPageIndexChanged="Grid_Change">

    <HeaderStyle BackColor="#00aaaa">
    </HeaderStyle>

    <PagerStyle Mode="NextPrev"></PagerStyle>

    <Columns>

    <asp:BoundColumn
    HeaderText="Number"
    DataField="IntegerValue"/>

    <asp:BoundColumn
    HeaderText="Item"
    DataField="StringValue"/>

    <asp:BoundColumn
    HeaderText="Price"
    DataField="CurrencyValue"
    DataFormatString="{0:c}">

    <ItemStyle HorizontalAlign="right"></ItemStyle>

    </asp:BoundColumn>
    </Columns>
    </aspataGrid>



    <asp:CheckBox id="CheckBox1"
    Text="Show page navigation"
    AutoPostBack="true"
    runat="server"/>

    </form>

    </body>
    </html>

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    In questo link: http://www.aspitalia.com/liste/usag/...azione+manuale trovi quello che ti serve.
    In pratica utilizzi il metodo overload fill dell'oggetto DataAdapter in qui accetta il numero di record a base zero con cui iniziare, e il numero massimo di record da recuperare.

    La paginazione manuale è obbligatoria qualunque sia il modo di costruire la griglia. Anche se utilizzi un DataGrid, il modo serio di fare la paginazione è questo.
    La navigazione tra pagine, una volta capito il principio, la puoi fare come vuoi.
    Per esempio, io preferisco il classico navigatore:
    tasto record primo
    tasto record precedente
    finestra di immissione numero pagina
    tasto record seguente
    tasto record ultimo

    Ciao

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.