从Excel导入后对Gridview/Datagrid进行排序 [英] Sorting Gridview/Datagrid after importing from Excel

查看:94
本文介绍了从Excel导入后对Gridview/Datagrid进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




从Excel升级到Gridview后,我的排序不起作用.谁能帮我.

感谢

Hi,


After uploding from Excel to Gridview my sorting is not working. Can anybody help me.

Thanks

推荐答案

Protected Sub Gridv_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles Gridv.Sorting
        Dim sortExpression As String = e.SortExpression
        ViewState("SortExpression") = sortExpression
        If SortDirection = SortDirection.Ascending Then
            SortDirection = SortDirection.Descending
            SortGridView(sortExpression, DESCENDING)
        Else
            SortDirection = SortDirection.Ascending
            SortGridView(sortExpression, ASCENDING)
        End If
    End Sub
    Private Property SortDirection() As SortDirection
        Get
            If ViewState("sortDirection") Is Nothing Then
                ViewState("sortDirection") = SortDirection.Ascending
            End If
            Return DirectCast(ViewState("sortDirection"), SortDirection)
        End Get
        Set(ByVal value As SortDirection)
            ViewState("sortDirection") = value
        End Set
    End Property
  Private Sub SortGridView(ByVal sortExpression As String, ByVal direction As String)
        Dim con As OleDbConnection = Nothing
        Try
            con = New OleDbConnection(";Extended Properties=""Excel 8.0"";")
        Catch ex As Exception
            lt1.Text = ex.Message
            Exit Sub
        End Try
        Dim sSQL As String = "SELECT * FROM [Excel


;" Dim cmd As 新建 OleDbDataAdapter(sSQL,骗局) Dim ds As 新建数据集 尝试 cmd.Fill(ds,sSQL) Dim dv As DataView = 新建 DataView( ds.Tables(" )) ' UpdateColumnHeaders(Gridv) Gridv.DataSource = ds Gridv.DataBind() ' 如果不是(ViewState("ssortexp").ToString()=")然后 ' dv.Sort =(ViewState("ssortexp").ToString()+ ViewState("sorder").ToString( )) ' 如果结束 捕获,例如 As 异常 lt1.Text = ex.Message 退出 最后 con.Close() 结束 尝试 结束 受保护的 Gridv_RowCreated( ByVal 发​​件人目标 对象 ByVal e GridViewRowEventArgs) 如果 e.Row.RowType = DataControlRowType.Header 然后 Dim sortColumnIndex As 整数 = GetSortColumnIndex() 如果 sortColumnIndex& lt;& gt; -1 然后 AddSortImage(sortColumnIndex,e.Row) 结束 如果 结束 如果 结束 私有 函数 GetSortColumnIndex() As 整数 对于 每个字段 As DataControlField Gridv.Columns中 如果字段.SortExpression= DirectCast (ViewState(" SortExpression"),然后 返回 Gridv.Columns.IndexOf(字段) 结束 如果 下一步 返回 -1 结束 功能 私有 AddSortImage( ByVal columnIndex As 整数 ByVal headerRow ' 根据排序方向创建排序图像. Dim sortImage As 新建 Image() 如果 SortDirection = SortDirection.升序然后 sortImage.ImageUrl = " sortImage.AlternateText = " 其他 sortImage.ImageUrl = " sortImage.AlternateText = " 结束 如果 ' 将图像添加到适当的标题单元格中. headerRow.Cells(columnIndex).Controls.Add(sortImage) 结束
;" Dim cmd As New OleDbDataAdapter(sSQL, con) Dim ds As New DataSet Try cmd.Fill(ds, sSQL) Dim dv As DataView = New DataView(ds.Tables("sSQL")) 'UpdateColumnHeaders(Gridv) Gridv.DataSource = ds Gridv.DataBind() 'If Not (ViewState("ssortexp").ToString() = "") Then ' dv.Sort = (ViewState("ssortexp").ToString() + ViewState("sorder").ToString()) 'End If Catch ex As Exception lt1.Text = ex.Message Exit Sub Finally con.Close() End Try End Sub Protected Sub Gridv_RowCreated(ByVal sender As Object, ByVal e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.Header Then Dim sortColumnIndex As Integer = GetSortColumnIndex() If sortColumnIndex <> -1 Then AddSortImage(sortColumnIndex, e.Row) End If End If End Sub Private Function GetSortColumnIndex() As Integer For Each field As DataControlField In Gridv.Columns If field.SortExpression = DirectCast(ViewState("SortExpression"), String) Then Return Gridv.Columns.IndexOf(field) End If Next Return -1 End Function Private Sub AddSortImage(ByVal columnIndex As Integer, ByVal headerRow As GridViewRow) ' Create the sorting image based on the sort direction. Dim sortImage As New Image() If SortDirection = SortDirection.Ascending Then sortImage.ImageUrl = "images/arrow.gif" sortImage.AlternateText = "Ascending Order" Else sortImage.ImageUrl = "images/arrowdown.gif" sortImage.AlternateText = "Descending Order" End If ' Add the image to the appropriate header cell. headerRow.Cells(columnIndex).Controls.Add(sortImage) End Sub


这篇关于从Excel导入后对Gridview/Datagrid进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆