ASP.NET实现增删改查等功能(Access版)系统之三-分页及排序

 

/// <summary>

    /// 分页技术,触发事件

    /// </summary>

    /// <param name="sender"></param>

    /// <param name="e"></param>

    protected void gridViewPublishers_PageIndexChanging(object sender, GridViewPageEventArgs e)

    {

       

        GridView1.DataSource = SortDataTable(GridView1.DataSource as DataTable, true);

        GridView1.PageIndex = e.NewPageIndex;

        GridView1.DataBind();

       

    }

    /// <summary>

    /// 分页实现

    /// </summary>

    /// <param name="dataTable"></param>

    /// <param name="isPageIndexChanging"></param>

    /// <returns></returns>

    protected DataView SortDataTable(DataTable dataTable, bool isPageIndexChanging)

    {

        if (dataTable != null)

        {

 

            DataView dataView = new DataView(dataTable);

 

            if (GridViewSortExpression != string.Empty)

            {

 

                if (isPageIndexChanging)

                {

 

                    dataView.Sort = string.Format("{0} {1}", GridViewSortExpression, GridViewSortDirection);

 

                }

 

                else

                {

 

                    dataView.Sort = string.Format("{0} {1}", GridViewSortExpression, GetSortDirection());

 

                }

 

            }

 

            return dataView;

 

        }

 

        else

        {

 

            return new DataView();

 

        }

 

    }

    private string GridViewSortExpression

    {

        get { return ViewState["SortExpression"] as string ?? string.Empty; }

        set { ViewState["SortExpression"] = value; }

    }

    private string GridViewSortDirection

    {

        get { return ViewState["SortDirection"] as string ?? "ASC"; }

        set { ViewState["SortDirection"] = value; }

    }

    private string GetSortDirection()

    {

        switch (GridViewSortDirection)

        {

            case "ASC":

                GridViewSortDirection = "DESC";

                break;

 

            case "DESC":

                GridViewSortDirection = "ASC";

                break;

        }

 

        return GridViewSortDirection;

    }

 

    protected void gridViewPublishers_Sorting(object sender, GridViewSortEventArgs e)

    {

       

         GridViewSortExpression = e.SortExpression;

         int pageIndex = GridView1.PageIndex;

         GridView1.DataSource = SortDataTable(GridView1.DataSource as DataTable, false);

         GridView1.DataBind();

         GridView1.PageIndex = pageIndex;

       

    }

 

转载于:https://www.cnblogs.com/maxblog/archive/2010/05/08/1730563.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在网上找了一个 Asp数据操作组件(百万级分页) ,实用环境:Asp+DLL+MsSQL(这个网上很多地方都可以下载),并且其中结合SQL存储过程,说实话以前SQL存储过程接触的比较少,所以在调试该组件的时候遇到了一些问题,并试着改了一下(作者别生气(^..^)),高手们别笑话我。 原代码如下: 有分页列表数据: cls.tblName="Tablename" '表名 cls.fldName="Id" '排序关键字段 cls.PageIndex=Request("P")*1 '当前页码 cls.PageSize=20 '每页列数 cls.OrderType=1 '排序方式,0 、1 cls.strWhere=StrW '查询条件,不带Where cls.ListUrl="?Y="&Y&"&M="&M&"&D="&D&"&Sn="&Sn&"&P=" 分页URL Set Rs=cls.Result do while not rs.eof rs.movenext loop 分页数据 cls.page 在原文的使用说明中,在翻页代码中对表查询默认是全部字段也就是*,这样是不是会浪费资源,而无法查询需要的字段,于是我在DLL代码中新加入一个变量名为zdName,作为传递可控制查询条件的变量,同时在SQL存储过程中也加入相应的接受变量@zdName 字符型。 在这个小问题解决后,又在使用上发现cls.strWhere付给它的变量StrW 如果条件变量其中带有类似 例如 a='b'则执行SQL存储过程时候会提示错误,后来发现是DLL代码中: sql = "exec GetList " & tblName & "," & fldName & "," & PageSize & "," & PageIndex & "," & OrderType & ",'" & strWhere & "' " 这个地方是否写的不够严谨,在StrW中如果含有单引,那么将无法执行,所以我在DLL的VB代码改成 If InStr(strWhere, "'") 0 Then sql = "exec GetList " & tblName & "," & fldName & "," & PageSize & "," & PageIndex & "," & OrderType & ",""" & strWhere & """ " Else sql = "exec GetList " & tblName & "," & fldName & "," & PageSize & "," & PageIndex & "," & OrderType & ",'" & strWhere & "' " End If 试了试目前的问题确实解决了,这个组件我也是刚刚使用,希望对大家能有点帮助!
云枫博客系统是由云枫工作室独立开发的一个博客系统系统环境:asp.net 2.0 +access 开发语言 C#.net。 使用步骤: 1.解压源代码压缩包,然后把源代码上传到服务器空间上(注:服务器空间需支持.net2.0,文件可写,本系统是采用了动态网页生成静态网页的技术,所以要确保文件的可写性) 2.访问“你的域名/ShowPath.aspx",页面显示出数据库在服务器上的绝对路径,比如作者在本地电脑显示的是“F:\网站发布\yunfeng blog version 1.0\web\DataBase\blog.mdb”,把这个路径的“\”替换成“/”,即“F:/网站发布/yunfeng blog version 1.0/web/DataBase/blog.mdb”(为方便,下文用newpath代替这个数据库路径),用记事本打开根目录下面的web.config文件,找到“<add key="ACCESSConstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:/网站发布/yunfeng blog version 1.0/web/DataBase/blog.mdb " />”这一行,把刚才得到的newpath代替Data Source后面的值也访问就是刚才这一句中的“F:/网站发布/yunfeng blog version 1.0/web/DataBase/blog.mdb”。再找到<add key="Domain" value="http://localhost/"/> 这句,把localhost替换成您的域名.然后把web.config这个文件上传到服务器空间的根目录下面.把服务器空间上面的ShowPath.aspx删除掉。 3,网站前台都是静态网页的,所以,发布信息或者删除信息之后需要到后台管理-》发布管理里面重新生成一下首页和各栏目的首页。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值