从Excel导入后对Gridview/Datagrid进行排序 [英] Sorting Gridview/Datagrid after importing from Excel
本文介绍了从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屋!
查看全文