My Gridview sorting only works only one way 
means it works only desc order not by asc order. 
 
below is my code , can you please check where i m worng ? 
Public Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
         If Not Page.IsPostBack Then
           Gridview1.Visible = False
        End If
    End Sub
 
Protected Sub Submit_Click(sender As Object, e As System.EventArgs) Handles Submit.Click
              Gridview1.DataSourceID = Nothing
                Gridview1.DataBind()
                Gridview1.Visible = True
                Binddata()
                Gridview1.PageIndex = 0
 
End sub
 
 
 Protected Sub Binddata()
       
        Dim dTable As DataTable = New DataTable()
        Dim ObjConnection As SqlConnection = New SqlConnection(ConfigurationManager.AppSettings("connString"))
        Try
            ObjConnection.Open()
            Dim sqlcmd As SqlCommand = New SqlCommand("proc_Emp", ObjConnection)
            sqlcmd.CommandType = CommandType.StoredProcedure
            sqlcmd.Parameters.AddWithValue("@EMPID", EMPID)
            
            dTable.Load(sqlcmd.ExecuteReader())
             If dTable.Rows.Count > 0 Then
                Gridview1.DataSource = dTable
                Gridview1.DataBind()
                Cache("Data") = dTable
                ViewState("Data1") = dTable
            End If
        Catch ex As System.Data.SqlClient.SqlException
            Dim msg As String = "Fetch Error in database :"
            msg += ex.Message
            Throw New Exception(msg)
        Finally
 
            ObjConnection.Close()
            ObjConnection.Dispose()
 
        End Try
    End Sub
 
    Protected Sub Gridview1_Sorting(sender As Object, e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles Gridview1.Sorting
 
        Dim dt As DataTable = TryCast(ViewState("Data1"), DataTable)
        If Not dt Is Nothing Then
            Alert.Show("HI")
            Dim dv As New DataView
            dv = New DataView(dt)
            dv.Sort = e.SortExpression & " " & GetSortDirection()
            Gridview1.DataSource = dv
            Gridview1.DataBind()
        Else
            Alert.Show("no")
        End If
    End Sub
 
    Private Property GridViewSortDirection() As String
        Get
            Return If(TryCast(ViewState("SortDirection"), String), "DESC")
        End Get
        Set(value As String)
            ViewState("SortDirection") = value
        End Set
    End Property
 
    Private Function GetSortDirection() As String
        Select Case GridViewSortDirection
            Case "ASC"
                GridViewSortDirection = "DESC"
                Exit Select
            Case "DESC"
                GridViewSortDirection = "ASC"
                Exit Select
        End Select
        Return GridViewSortDirection
    End Function