DataGrid con paginación y ordinenacion a la vez no funciona

04/07/2004 - 14:44 por Xus | Informe spam
Pues eso... que al hacer una ordenación, y pasar a la paginación, el tema
deja de funcionar.

He provado con enableviewstate=true pero tampoco nada (demasiado facil para
funcionar, jeje)

Alguien sabe como solucionar eso?

Graciaass!

XUs.
 

Leer las respuestas

#1 Xus
04/07/2004 - 15:32 | Informe spam
Despues de mucho buscar por internet y ver ejemplos complicadísimos (al
menos para mi) modificando el viewstate y otras cosas, se me ha ocurrido
esto, lo mas facil, sencillo: session

Pego el codigo por si a álguien le sirve


Imports System.Data.OleDb

Public Class index
Inherits System.Web.UI.Page
Protected WithEvents Panel1 As System.Web.UI.WebControls.Panel
Protected WithEvents grid As System.Web.UI.WebControls.DataGrid
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents grid2 As System.Web.UI.WebControls.DataGrid
Protected WithEvents Label2 As System.Web.UI.WebControls.Label

#Region " Código generado por el Diseñador de Web Forms "

'El Diseñador de Web Forms requiere esta llamada.
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()

End Sub

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Init
'CODEGEN: el Diseñador de Web Forms requiere esta llamada de método
'No lo modifique con el editor de código.
InitializeComponent()
End Sub

#End Region




Sub connectaGrid()
Dim Conn As OleDbConnection
Dim sql As OleDbDataAdapter
Dim dades As DataSet

Conn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA
Source=" & Server.MapPath("dades.mdb"))
sql = New OleDbDataAdapter("SELECT idAmic, nom, telefon FROM amic",
Conn)
dades = New DataSet()

sql.Fill(dades)

grid.DataSource = dades
grid.DataBind()

End Sub

Sub connectaGrid2Ordenat(ByVal elementOrdenacio As String)
Dim Conn As OleDbConnection
Dim sql As OleDbDataAdapter
Dim dades As DataSet

Conn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA
Source=" & Server.MapPath("dades.mdb"))
sql = New OleDbDataAdapter("SELECT idAmic, nom, telefon FROM amic
ORDER BY " & elementOrdenacio, Conn)
dades = New DataSet()

sql.Fill(dades)

grid2.DataSource = dades
grid2.DataBind()
End Sub


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Introducir aquí el código de usuario para inicializar la página
If Session("ordena") = "" Then
Session("ordena") = "idAmic"
End If

connectaGrid()
connectaGrid2Ordenat(Session("ordena"))


End Sub

Private Sub grid_PageIndexChanged(ByVal source As System.Object, ByVal
e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles
grid.PageIndexChanged
grid.CurrentPageIndex = e.NewPageIndex
connectaGrid()
End Sub


Private Sub grid2_SortCommand(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles
grid2.SortCommand
Session("ordena") = e.SortExpression
connectaGrid2Ordenat(e.SortExpression)
End Sub

Private Sub grid2_PageIndexChanged(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles
grid2.PageIndexChanged
grid2.CurrentPageIndex = e.NewPageIndex
connectaGrid2Ordenat(Session("ordena"))
End Sub


<asp:DataGrid EnableViewState="True" AllowSorting="True" id="grid2"
style="Z-INDEX: 103; LEFT: 103px; POSITION: absolute; TOP: 216px"
Runat="server" BackColor="#6699cc" AlternatingItemStyle-BackColor="#cccccc"
HeaderStyle-Font-Bold="True" HeaderStyle-ForeColor="#ffffff"
HeaderStyle-Font-Size="10px" HeaderStyle-Font-Name="Verdana"
ItemStyle-Font-Size="10px" HeaderStyle-BackColor="#330066"
ItemStyle-Font-Name="Verdana" GridLines="Horizontal"
AutoGenerateColumns="False" PageSize="5" AllowPaging="True"
PagerStyle-ForeColor="#ffffff" PagerStyle-Font-Size="10px"
PagerStyle-Font-Name="Verdana" PagerStyle-BackColor="#330066" Width="300px"
ItemStyle-HorizontalAlign="Left">
<AlternatingItemStyle BackColor="#CCCCCC"></AlternatingItemStyle>
<ItemStyle Font-Size="10px" Font-Names="Verdana"
HorizontalAlign="Left"></ItemStyle>
<HeaderStyle Font-Size="10px" Font-Names="Verdana" Font-Bold="True"
ForeColor="White" BackColor="#330066"></HeaderStyle>

<Columns>
<asp:BoundColumn SortExpression="idAmic" DataField="idAmic"
HeaderText="ID">
<ItemStyle Font-Names="Arial" Width="20px"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn SortExpression="nom" DataField="nom"
HeaderText="Nom">
<ItemStyle Width="200px"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn SortExpression="telefon" DataField="telefon"
HeaderText="Tel&#232;fon"></asp:BoundColumn>
</Columns>

<PagerStyle Font-Size="10px" Font-Names="Verdana" ForeColor="White"
BackColor="#330066"></PagerStyle>
</asp:DataGrid>

Preguntas similares