Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Where to Call Sorting and Paging methods From with asp:Gridview

Posted on 2007-11-30
1
Medium Priority
?
335 Views
Last Modified: 2013-11-26
Im using the following code in my BindData() function:
I just need to know where I can call my Sorting and Paging methods from with this code:
Maybe Im not understanding this correctly, but, I start off with a DataReader and unload it to a DataTable but then I have to convert to a DataView to Sort the table.
Is there any way around this if Im using an SqlDataSource entirely through code?
I have a rowfilter I want to apply to my dataset but I dont know where before I rebind the gridview.
Thanks
John
Sub BindData(ByVal GetFresh As Boolean, Optional ByVal TextSearch As Boolean = False, Optional ByVal Pageindexchange As Boolean = False)
            Try
                If GetFresh = True And TextSearch = False Then
                    strFilter = "All"
                End If
                Dim myConn2 As SqlConnection = New SqlConnection(ConfigurationManager.AppSettings("connectionString").ToString())
                Dim myComm2 As SqlCommand = New SqlCommand()
                myComm2.Connection = myConn2
                strId = Me.ddlLocation.SelectedValue
                If strId = 0 Or strId = "" Then
                    myComm2.CommandText = "SelectClients"
                Else
                    myComm2.CommandText = "SelectClientsByLocation"
                End If
                myComm2.CommandType = CommandType.StoredProcedure
                myConn2.Open()
                rdr2 = myComm2.ExecuteReader()
                'change datasource from datareader to datatable
                Dim DT As New DataTable()
                'Load Data from Data Reader to DataTable object
                DT.Load(rdr2)
                lblCount.Text = DT.Rows.Count
                lblSort.Text = GridViewSortDirection
                dataTableRowCount = DT.Rows.Count
 
                If dataTableRowCount > 0 Then
                    gvAddress.DataSource = DT
                    gvAddress.DataBind()
                End If
 
                'Dim ds1 As DataSet = Nothing
                Dim nDT As DataView
                'ds1 = convertDataReaderToDataSet(rdr2)
                'nDT = ds1.Tables(0).DefaultView
 
                nDT = SortDataTable(DT, Pageindexchange)
                lblDir.Text = nDT.Sort
 
                If strId = CStr(0) Or strId = "" Then  ' 0 for all locations
                    If strFilter = "All" Then
                        nDT.RowFilter = String.Empty
                    Else
                        nDT.RowFilter = "ContactLastName LIKE '" & Trim(strFilter) & "%' "
                    End If
                Else
                    If strFilter = "All" Then
                        nDT.RowFilter = "LocationID=" & Trim(strId)
                    Else
                        nDT.RowFilter = "ContactLastName LIKE '" & Trim(strFilter) & "%'  and LocationID=" & Trim(strId)
                    End If
                End If
--------------------------------------------------
--generic sorting and paging routines:
        Protected Function SortDataTable(ByVal dataTable As DataTable, ByVal isPageIndexChanging As Boolean) As DataView
            If Not dataTable Is Nothing Then
 
                Dim dataView As DataView = New DataView(dataTable)
                If GridViewSortExpression <> String.Empty Then
                    If isPageIndexChanging Then
                        'dataView.Sort = String.Format("{0} {1}", GridViewSortExpression, GridViewSortDirection)
                        dataView.Sort = GridViewSortExpression + " " + GridViewSortDirection
                    Else
                        dataView.Sort = GridViewSortExpression + " " + GetSortDirection()
 
                        'dataView.Sort = String.Format("{0} {1}", GridViewSortExpression, GetSortDirection())
                    End If
                End If
                Return dataView
            Else
                Return New DataView()
            End If
        End Function
---------------------------------------------------
        Private Function GetSortDirection() As String
            Select Case GridViewSortDirection
                Case "ASC"
                    GridViewSortDirection = "DESC"
                Case "DESC"
                    GridViewSortDirection = "ASC"
            End Select
            Return GridViewSortDirection
        End Function
 
        Private Property GridViewSortDirection() As String
            Get
                Return IIf(ViewState("SortDirection") = Nothing, "ASC", ViewState("SortDirection"))
            End Get
            Set(ByVal value As String)
                ViewState("SortDirection") = value
            End Set
        End Property
 
        Private Property GridViewSortExpression() As String
            Get
                Return IIf(ViewState("SortExpression") = Nothing, String.Empty, ViewState("SortExpression"))
            End Get
            Set(ByVal value As String)
                ViewState("SortExpression") = value
            End Set
        End Property

Open in new window

0
Comment
Question by:jtrapat1
1 Comment
 
LVL 10

Accepted Solution

by:
Alpesh Patel earned 1000 total points
ID: 20384844
Yes you can use that

now regarding sorting and paging its long to solve your code. but i can give u solutions which u can apply for your problem

your VB page has this scenario

protected sub grid_DataBind(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles grd.PageIndexChanging

bind your data here with either way no matter wheather it is with Datareader or with SqlDatasource

end sub

 Protected Sub grd_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles grd.PageIndexChanging

        grd.PageIndex = e.NewPageIndex
apply databinding here
    End Sub




 Protected Sub grd_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles grd.Sorting
apply DataBinding here with  column name   e.SortExpression.ToString
End Sub




Your ASPX page has this scenario

1.  make your grid attrribute for paging= true and for sorting=true
2. for each column set attribute SortExpression='YourColumnName'

thats it
it would definetly work
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Simulator games are perfect for generating sample realistic data streams, especially for learning data analysis. It is even useful for demoing offerings such as Azure stream analytics, PowerBI etc.
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an anti-spam), the admin…
Whether it be Exchange Server Crash Issues, Dirty Shutdown Errors or Failed to mount error, Stellar Phoenix Mailbox Exchange Recovery has always got your back. With the help of its easy to understand user interface and 3 simple steps recovery proced…
Suggested Courses
Course of the Month12 days, 13 hours left to enroll

580 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question