Ciao a tutti, volevo sapere se si possono inserire due datagrid nella stessa pagina con paginazione.
Non mi da errore ma vedo si imbroglia con la paginazione
Grazie, Elisa
Ciao a tutti, volevo sapere se si possono inserire due datagrid nella stessa pagina con paginazione.
Non mi da errore ma vedo si imbroglia con la paginazione
Grazie, Elisa
Se puoi postare un po' di codice forse possiamo aiutarti. Così può essere qualsiasi causa...
Ciao![]()
AZ [Microsoft - .NET MVP]
Mia Home page: http://ciclismo.sitiasp.it
Asp.Net community: http://www.aspitalia.com
Il mio blog: http://blogs.aspitalia.com/az
... mi sembra di aver postato tutto il codice necessario....<aspataGrid id="dgservizi" runat="server" PageSize="5" AllowCustomPaging="True" CellPadding="2"
AllowPaging="True" BorderWidth="0px" AutoGenerateColumns="False" Width="700px" OnPageIndexChanged="pagservizi">
<HeaderStyle cssclass=cap></HeaderStyle>
<ItemStyle cssclass=txtr></ItemStyle>
<FooterStyle cssclass=cap></FooterStyle>
<PagerStyle NextPageText="Pagina successiva" PrevPageText="Pagina precedente"></PagerStyle>
<Columns>
<asp:TemplateColumn HeaderText="Informazioni Utili" ItemStyle-Width="700px">
<ItemTemplate>
<%#Container.DataItem("Denominazione")%> - <%#Container.DataItem("Via")%> - <%#Container.DataItem("Cap")%> <%#Container.DataItem("Localita")%>
<hr size="1" color="#808080">
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</aspataGrid>
.....
<aspanel id=pservizilimitrofi runat=server visible=false>
<tr>
<td width=700 colspan=2>
<aspataGrid id="dgservizilimitrofi" runat="server" PageSize="5" AllowCustomPaging="True" CellPadding="2"
AllowPaging="True" BorderWidth="0px" AutoGenerateColumns="False" Width="700px" OnPageIndexChanged="pagservizilimitrofi">
<HeaderStyle cssclass=cap></HeaderStyle>
<ItemStyle cssclass=txtr></ItemStyle>
<FooterStyle cssclass=cap></FooterStyle>
<PagerStyle NextPageText="Pagina successiva" PrevPageText="Pagina precedente"></PagerStyle>
<Columns>
<asp:TemplateColumn HeaderText="Informazioni Utili zone limitrofe" ItemStyle-Width="700px">
<ItemTemplate>
<%#Container.DataItem("Denominazione")%> - <%#Container.DataItem("Via")%> - <%#Container.DataItem("Cap")%> <%#Container.DataItem("Localita")%>
<hr size="1" color="#808080">
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</aspataGrid>
Nel codebehind:
dentro la binddata
....
'//*Visualizzo i servizi
Dim sql As String = "Select * from servizi where tipo=" & IdTipoServizio & " AND cap= " & cap & " Order by Denominazione"
Dim sqlConta1 As String = "Select Count(*) from servizi where tipo=" & IdTipoServizio & " AND cap= " & cap & ""
If dgservizi.VirtualItemCount = 0 Then
Dim cmdQuanti As New OleDbCommand(sqlConta1, Conn)
quanti1 = cmdQuanti.ExecuteScalar()
dgservizi.VirtualItemCount = quanti1
Else
quanti1 = dgservizi.VirtualItemCount
End If
Dim Cmd As New OleDbDataAdapter(sql, Conn)
Cmd.Fill(ds, (dgservizi.CurrentPageIndex * 10), 10, "Servizi")
Dim Source As DataView = ds.Tables("Servizi").DefaultView
dgservizi.DataSource = Source
dgservizi.DataBind()
....
'//*Visualizzo i servizi limitrofi
Dim sqlservizilimitrofi = "SELECT ZONELIMIT.*, SERVIZI.* FROM SERVIZI INNER JOIN ZONELIMIT ON SERVIZI.Cap = ZONELIMIT.Cap1 where cap1= " & cap & " and tipo=" & IdTipoServizio & " Order by Denominazione"
Dim sqlConta2 As String = "Select Count(*) FROM SERVIZI INNER JOIN ZONELIMIT ON SERVIZI.Cap = ZONELIMIT.Cap1 where cap1= " & cap & " and tipo=" & IdTipoServizio & ""
If dgservizilimitrofi.VirtualItemCount = 0 Then
Dim cmdQuanti As New OleDbCommand(sqlConta2, Conn)
quanti2 = cmdQuanti.ExecuteScalar()
dgservizilimitrofi.VirtualItemCount = quanti2
Else
quanti2 = dgservizi.VirtualItemCount
End If
Dim Cmd As New OleDbDataAdapter(sqlservizilimitrofi, Conn)
Cmd.Fill(ds, (dgservizilimitrofi.CurrentPageIndex * 10), 10, "Servizilimitrofi")
Dim Source As DataView = ds.Tables("Servizilimitrofi").DefaultView
dgservizilimitrofi.DataSource = Source
dgservizilimitrofi.DataBind()
....
Sub pagservizi(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
dgservizi.CurrentPageIndex = e.NewPageIndex
BindData()
End Sub
Sub pagservizilimitrofi(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
dgservizilimitrofi.CurrentPageIndex = e.NewPageIndex
BindData()
End Sub
Praticamente se clicco su "pagina successiva" ricarica la pagina e non vedo + ne il datagrid sopra ne quello sotto
grazie,
Elisa
Ho dato un'occhiata al volo, ma perchè metti nel file.aspx il pagesize dei datagrid a 5 poi nel databind prendi 10 righe?
Prova a far funzionare singolarmente le due griglie e vedi se ci sono problemi con la paginazione, poi mettendole nella stessa pagina verifichi che non ci siano altri problemi.
Ciao
Legnetto
si hai ragione ieri sera ero rinco. cmq anche se sistemato con 5 non funziona lo stesso
Hai un unica funzione binddata dove dentro gestisci entrambe le datagrid. Non hai postato tutta la funzione credo, cmq sarebbe meglio separare la gestione delle due datasource.
Poi mi sembra che utilizzi inutilmente e male la dataview. Modifica con
o concodice:dgservizilimitrofi.DataSource = ds.Tables("Servizilimitrofi").DefaultView
visto che non utilizzi alcuna funzione specifica di ordinamento o di filtro della dataviewcodice:dgservizilimitrofi.DataSource = ds.Tables("Servizilimitrofi")
Saluti a tutti
Riccardo
.. però si incarata uguale uff... presi singolarmente funzionano
penso di aver trovato il problema.
Qui sembra come se facesse un conto errato dei record,, mi attiva il link pagina successiva anche se non serve.
Premesso che le query sono corrette perchè le ho testate in access ecco il codice:
Adesso c'è solo questo datagrid nella pagina.<aspataGrid id="dgservizilimitrofi" runat="server" PageSize="5" AllowCustomPaging="True" CellPadding="2"
AllowPaging="True" BorderWidth="0px" AutoGenerateColumns="False" Width="700px" OnPageIndexChanged="pagservizilimitrofi">
<HeaderStyle cssclass=cap></HeaderStyle>
<ItemStyle cssclass=txtr></ItemStyle>
<FooterStyle cssclass=cap></FooterStyle>
<PagerStyle NextPageText="Pagina successiva" PrevPageText="Pagina precedente"></PagerStyle>
<Columns>
<asp:TemplateColumn HeaderText="Informazioni Utili zone limitrofe" ItemStyle-Width="700px">
<ItemTemplate>
<%#Container.DataItem("Denominazione")%> - <%#Container.DataItem("Via")%> - <%#Container.DataItem("Cap")%> <%#Container.DataItem("Localita")%>
<hr size="1" color="#808080">
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</aspataGrid>
....................
Dim sqlservizilimitrofi = "SELECT ZONELIMIT.*, SERVIZI.* FROM ZONELIMIT INNER JOIN SERVIZI ON ZONELIMIT.Cap2 = SERVIZI.Cap WHERE(((ZONELIMIT.Cap1) = " & Session("cap") & ") And ((SERVIZI.Tipo) = " & Session("IdTipoServizio") & ")) ORDER BY SERVIZI.Denominazione"
Dim sqlConta3 As String = "Select Count(*) FROM ZONELIMIT INNER JOIN SERVIZI ON ZONELIMIT.Cap2 = SERVIZI.Cap WHERE(((ZONELIMIT.Cap1) = " & Session("cap") & ") And ((SERVIZI.Tipo) = " & Session("IdTipoServizio") & "))"
If dgservizilimitrofi.VirtualItemCount = 0 Then
Dim cmdQuanti3 As New OleDbCommand(sqlConta3, Conn)
quanti3 = cmdQuanti3.ExecuteScalar()
dgservizilimitrofi.VirtualItemCount = quanti3
Else
quanti3 = dgservizilimitrofi.VirtualItemCount
End If
Dim Cmd3 As New OleDbDataAdapter(sqlservizilimitrofi, Conn)
Cmd3.Fill(ds, (dgservizilimitrofi.CurrentPageIndex * 5), 5, "Servizilimitrofi")
dgservizilimitrofi.DataSource = ds.Tables("Servizilimitrofi").DefaultView
dgservizilimitrofi.DataBind()
......................
Sub pagservizilimitrofi(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
dgservizilimitrofi.CurrentPageIndex = e.NewPageIndex
BindData()
End Sub
Ok sembra risolto c'era un problema con VirtualItemCount che restava in memoria errato quanto passavo da un dg all'altro
thanks a tutti lo stesso!
Elisa