1.使用数据源控件可以自动做排序分页,不需要多余代码,可是由于自动绑定太多操作,反而觉得很不灵活

前台:

<asp:GridViewID="gv_test"DataSourceID="ds_test"AllowPaging="True" PageSize="10"runat="server">

...

</asp:GridView>

<asp:SqlDataSource  runat="server" ID="ds_test" SelectCommand="select * from test" ConnectionString="...">

2.使用DataTable为数据源会发现排序,分页包括修改,取消等操作都需要手动实现

前台:

 <asp:GridView ID="gv_test"  runat="server" 
            OnRowCommand="gv_test_RowCommand"  OnRowUpdating="gv_test_RowUpdating"  OnRowEditing ="gv_test_RowEditing"
            OnRowCancelingEdit ="gv_test_RowCancelingEdit" OnPageIndexChanging ="gv_test_PageIndexChanging"  
            AllowPaging="True"  PageSize="10" AllowSorting="True" >
...
</asp:GridView >
后台:
Page_Load: gv_test.SortExpression总是为空,只好将排序字符串储存在新建的属性里
gv_test.Attributes.Add("Sort", "lastUpdateDate desc")
 
Protected Sub bind()
   gv_test.DataSource = getDataTable_bySQL("select * from test order by "+gv_test.Attributes("Sort"))
gv_test.DataBind()
End Sub

DataView比DatatTable功能强大些,可以拿到数据后进行排序。当SQL Server的ntext列不支持order by时候,用DataView可以解决问题,如下:
Protected Sub bind()
   gv_test.DataSource = getDataTable_bySQL("select * from test")
   Dim dv As DataView = New DataView(getTableData_bySQL("select * from test"))
   
   
   dv.Sort=gv_test.Attributes("Sort")
   gv_test.DataSource=dv
gv_test.DataBind()
End Sub
    Protected Sub gv_test_Sorting(ByVal sender As Object, ByVal e As GridViewSortEventArgs) Handles gv_test.Sorting
        gv_test.EditIndex = -1
        If gv_test.Attributes("Sort") = e.SortExpression + " desc" Then
            gv_test.Attributes("Sort") = e.SortExpression
        Else
            gv_test.Attributes("Sort") = e.SortExpression + " desc"
        End If
        bind()
    End Sub
    Protected Sub gv_test_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
        gv_test.PageIndex = e.NewPageIndex
        gv_test.EditIndex = -1
        bind()
    End Sub
    Protected Sub gv_test_RowCancelingEdit(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs)
        gv_test.EditIndex = -1
        bind()
    End Sub
    Protected Sub gv_test_RowUpdating(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gv_test.RowUpdating
        gv_test.EditIndex = -1
    End Sub
    Public Sub gv_test_RowEditing(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs)
       gv_test.EditIndex = e.NewEditIndex
        bind()
    End Sub
 
 

最新文章

  1. 用普通计算机假设基于liunx系统的NAS部署FineReport决策系统
  2. @SuppressWarnings忽略警告
  3. BZOJ-1854 游戏 二分图匹配 (并查集)
  4. Integer取值范围和NumberFormatException的解决
  5. ubuntu14安装ambari2.2
  6. IE条件注释
  7. 第二篇、JavaScript常用的API
  8. Something About Variable
  9. 经典递归算法研究:hanoi塔的理解与实现
  10. Ant 简易教程
  11. winfrom 实现条形码批量打印以及将条形码信息生成PDF文件
  12. 超链接访问过后hover样式就不出现的问题是什么?如何解决?
  13. poj3928 la4329 pingpong
  14. 基于阻塞队列的生产者消费者C#并发设计
  15. Ubuntu:命令行下浏览网页
  16. vux环境配置
  17. python之路--小数据池,再谈编码,is和 == 的区别
  18. springmvc 返回 404 解决
  19. node 命令行升级版本
  20. 【优先队列】POJ2010- Moo University-Financial Aid

热门文章

  1. Python socket 编程(1)
  2. 计算机网络--TCP协议深入理解
  3. nginx与php配置用户问题
  4. AJAX个人草稿
  5. vmware vSphere Data Protection 6.1--------2-初始化
  6. JQuery实现密码可见不可见
  7. eigenface算法笔记
  8. 可以在一个.java文件中写两个类吗?
  9. IO模型之NIO代码及其实践详解
  10. C#导出和导入Excel模板功能