Note that there are some explanatory texts on larger screens.

plurals
  1. POMaintain sorting with paging in a GridView
    primarykey
    data
    text
    <p>I'm currently trying write code that will maintain the sorting preference while changing page on a GridView. My current code is working fine to sort the data based on the user sorting selection. But when changing page, the sorting doesn't work. I don't get an error but rather unsorted results.</p> <p>Here's my aspx code:</p> <pre><code>&lt;asp:GridView ID="tblAdministrators" runat="server" AutoGenerateColumns="false" EmptyDataText="No records found" PageSize="75" AllowPaging="True" AllowSorting="True"&gt; &lt;Columns&gt; &lt;asp:BoundField HeaderText="Name" InsertVisible="False" DataField="FULLNAME" SortExpression="FULLNAME"&gt;&lt;/asp:BoundField&gt; &lt;/Columns&gt; &lt;Columns&gt; &lt;asp:BoundField HeaderText="Active" InsertVisible="False" DataField="ACTIVE" SortExpression="ACTIVE"&gt;&lt;/asp:BoundField&gt; &lt;/Columns&gt; &lt;/asp:GridView&gt; </code></pre> <p>Here's my VB code:</p> <pre><code>Public Class ViewUsers Inherits SolutionBasePage Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then tblAdministrators.DataSource = GetData() tblAdministrators.DataBind() End If End Sub Private Const ASCENDING As String = " ASC" Private Const DESCENDING As String = " DESC" Private Function GetData() As Data.DataView Dim connection As OracleDBConnect = DAL.GetOracleDBConnection() Dim request As OracleDBRequest = Nothing Dim result As OracleDBResult = Nothing Dim trace As OracleDBChronoTrace = Nothing Dim status As DBStatus Dim sb As New StringBuilder Dim dv As DataView Dim ds As Data.DataSet = New Data.DataSet Try With sb .Append("SELECT FULLNAME, ACTIVE FROM USERS") End With request = New OracleDBRequest(sb.ToString, CommandType.Text) status = connection.Execute(request, result, trace) dv = New DataView(result.DataSet.Tables(0)) If (ViewState("sortExp") IsNot Nothing) Then dv = New Data.DataView(result.DataSet.Tables(0)) If (GridViewSortDirection = SortDirection.Ascending) Then GridViewSortDirection = SortDirection.Descending dv.Sort = CType(ViewState("sortExp") &amp; DESCENDING, String) Else GridViewSortDirection = SortDirection.Ascending dv.Sort = CType(ViewState("sortExp") &amp; ASCENDING, String) End If Else dv = result.DataSet.Tables(0).DefaultView End If Return dv Catch ex As Exception Finally 'ds.Dispose() 'dp.Dispose() End Try End Function Public Property GridViewSortDirection() As SortDirection Get If ViewState("sortDir") Is Nothing Then ViewState("sortDir") = SortDirection.Ascending End If Return CType(ViewState("sortDir"), SortDirection) End Get Set(ByVal value As SortDirection) ViewState("sortDir") = value End Set End Property Protected Sub tblAdministrators_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles tblAdministrators.PageIndexChanging tblAdministrators.PageIndex = e.NewPageIndex tblAdministrators.DataSource = GetData() tblAdministrators.DataBind() End Sub Protected Sub tblAdministrators_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles tblAdministrators.Sorting ViewState("sortExp") = e.SortExpression tblAdministrators.DataSource = GetData() tblAdministrators.DataBind() End Sub End Class </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload