博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AspnetPager表格标题排序功能
阅读量:4485 次
发布时间:2019-06-08

本文共 3824 字,大约阅读时间需要 12 分钟。

AspnetPager控件写的相当不错,不过作者没有提供一个标题排序的功能,我今天没事试用了一下,做了一个标题排序和大家一起分享

前台页面:

1     
2
3
4 5
6
7 8

 

后台页面,(不喜欢VB.net的去在线转换一下)

Imports System.DataImports System.Data.SqlClientPartial Public Class AspnetpagerTest    Inherits System.Web.UI.Page    Dim conn As String    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load        conn = "data source =WANGBF\SQL2008EX;uid=sa;pwd=sa;database=AspNetPagerDB;pooling=true"        'Dim connection As SqlConnection = Nothing        'Dim ds As DataSet = SqlHelper.ExecuteDataset(conn, CommandType.Text, "SELECT * FROM userinfo")        'Me.GridView1.DataSource = ds.Tables(0).DefaultView        'Me.GridView1.DataBind()        If Not IsPostBack Then            'cache the number of total records to improve performance            Dim obj As Object = Cache(Convert.ToString([GetType]()) & "totalOrders")            If obj Is Nothing Then                Dim totalOrders As Integer = CInt(SqlHelper.ExecuteScalar(conn, "P_GetOrderNumber"))                Cache(Convert.ToString([GetType]()) & "totalOrders") = totalOrders                AspNetPager1.RecordCount = totalOrders            Else                AspNetPager1.RecordCount = CInt(obj)            End If        End If    End Sub    Protected Sub AspNetPager1_PageChanged(ByVal sender As Object, ByVal e As EventArgs) Handles AspNetPager1.PageChanged        BindGridView("CustomerID", "asc")    End Sub    Protected Sub GridView1_Sorted(ByVal sender As Object, ByVal e As EventArgs) Handles GridView1.Sorted    End Sub    Protected Sub GridView1_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles GridView1.Sorting        If String.IsNullOrEmpty(ViewState("sortdirection")) Then            ViewState("sortdirection") = SortDirection.Ascending.ToString()        Else            If ViewState("sortdirection") = SortDirection.Ascending.ToString() Then                ViewState("sortdirection") = SortDirection.Descending.ToString()            Else                ViewState("sortdirection") = SortDirection.Ascending.ToString()            End If        End If        Dim strOrderType As String        strOrderType = IIf(ViewState("sortdirection") = "Ascending", "desc", "asc")        BindGridView(e.SortExpression.ToString(), strOrderType)    End Sub    Public Sub BindGridView(ByVal strOrder As String, ByVal strOrderType As String)        Dim paras As SqlParameter() = New SqlParameter() { _        New SqlParameter("@tblName", "Customers"), _        New SqlParameter("@strFields", "*"), _        New SqlParameter("@strOrder", strOrder), _        New SqlParameter("@strOrderType", strOrderType), _        New SqlParameter("@PageSize", AspNetPager1.PageSize), _        New SqlParameter("@PageIndex", AspNetPager1.CurrentPageIndex), _        New SqlParameter("@strWhere", "")}        GridView1.DataSource = SqlHelper.ExecuteReader(conn, "proc_SplitPage", paras)        GridView1.DataBind()    End SubEnd Class

 

存储过程:

 

create procedure proc_SplitPage( @tblName varchar(255), -- 表名 @strFields varchar(1000) = '*', -- 需要返回的列,默认* @strOrder varchar(255)='', -- 排序的字段名,必填 @strOrderType varchar(10)='ASC', -- 排序的方式,默认ASC @PageSize int = 10, -- 页尺寸,默认10 @PageIndex int = 1, -- 页码,默认1 @strWhere varchar(1500) = '' -- 查询条件 (注意: 不要加 where)AS declare @strSQL varchar(5000)  if @strWhere !='' set @strWhere=' where '+@strWhere  set @strSQL= 'SELECT * FROM ('+ 'SELECT ROW_NUMBER() OVER (ORDER BY '+@strOrder+' '+@strOrderType+') AS pos,'+@strFields+' '+ 'FROM '+@tblName+' '+@strWhere+ ') AS sp WHERE pos BETWEEN '+str((@PageIndex-1)*@PageSize+1)+' AND '+str(@PageIndex*@PageSize) exec (@strSQL)

 

 

转载于:https://www.cnblogs.com/jason819/archive/2012/08/22/2650577.html

你可能感兴趣的文章
E. The shortest problem
查看>>
jdk环境配置
查看>>
css定位
查看>>
MySql数据库的访问
查看>>
JSP—cookie
查看>>
构建之法第六、七章读后感
查看>>
css布局1
查看>>
百度实习第二天
查看>>
直接拿来用!最火的Android开源项目整理
查看>>
[单选题]计算字符串长度的函数是:
查看>>
[LeetCode-131] Palindrome Partitioning
查看>>
HTTP协议的理解
查看>>
Pika的设计及实现
查看>>
C++ primer plus chapter 8
查看>>
闭包匿名委托 注意点
查看>>
GreenDao数据库的升级
查看>>
iOS 简化冗余代码
查看>>
mysqldump导出--数据+结构+(函数+存储过程)
查看>>
js_DOM属性
查看>>
(转)NPOI+SharpZipLib实现压缩多个Excel下载
查看>>