asp.net gridview分页 aspnetpager插件实现 无存储过程

asp.net gridview分页 aspnetpager插件实现 无存储过程 。看了网上很多例子仍然是有很多疑惑,经过一早上的研究,其实用法很简单。可能是网上的例子,调用的方法是干啥用的没有写明白,所以导致一些代码看的云里雾里的。

下面我贴一下自己写的代码,有的地方我会备注,sql语句给参考,具体的什么参数啊啥的按自己的方法搞定吧。很简单

引用AspNetPager.dll文件

首先要在aspx文件里引用aspnetpager,代码:<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %> 


aspx文件:

 <div style="text-align:center;"> 
<webdiyer:AspNetPager ID="AspNetPagerAskAnswer" runat="server" 
AlwaysShow="True" FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" 
onpagechanged="AspNetPagerAskAnswer_PageChanged" PrevPageText="上一页" 
PageSize="15" CustomInfoHTML="共%PageCount%页,当前为第%CurrentPageIndex%页,每页%PageSize%条" 
                     ShowCustomInfoSection="left" PageIndexBoxType="DropDownList" 
                         ShowPageIndexBox="Always" SubmitButtonText="Go" TextAfterPageIndexBox="页" CustomInfoTextAlign=Center
                         TextBeforePageIndexBox="转到">
</webdiyer:AspNetPager> 
<br /> 
</div> 


aspx.cs文件

 public void BindData()
        {
            int userId = 0;
            if (Request.QueryString["id"]!=null)
            {
                userId = int.Parse(Request.QueryString["id"].ToString()); 
            }
            DataSet ds = new DataSet();
            StringBuilder strWhere = new StringBuilder();//创建的拼接参数的string,这些都不重要

            strWhere.Append(" t.Deleted =0 ");
            
            AspNetPagerAskAnswer.PageSize = 10;//设置分页大小 
            AspNetPagerAskAnswer.CurrentPageIndex = AspNetPagerAskAnswer.CurrentPageIndex;
            AspNetPagerAskAnswer.RecordCount = bll.GetList(strWhere.ToString()).Tables[0].Rows.Count;//获取符合当前条件的总条数

            ds = bll.GetListByPage(strWhere.ToString(), "", AspNetPagerAskAnswer.PageSize * (AspNetPagerAskAnswer.CurrentPageIndex - 1)+1, AspNetPagerAskAnswer.PageSize * AspNetPagerAskAnswer.CurrentPageIndex );// 这个方法传三个参数,1.查询条件2.根据哪一列排序 3.当前页的开始是第几条数据(每页条数*(当前页数-1)+1) 4.<span style="font-family: Arial, Helvetica, sans-serif;">当前页的最后一条是第几条数据(当前页数*每页条数) 下面会给sql语句的,在你的dbhelper类自己改一下就好了   </span>
            
            gridView.DataSource = ds;//gridview绑定数据源ds
            gridView.DataBind();
        }
protected void AspNetPagerAskAnswer_PageChanged(object sender, EventArgs e)
        {
            BindData();//<span style="font-family: Arial, Helvetica, sans-serif;">AspNetPagerAskAnswer控件绑定的刷新方法,原来的gridview的分页触发方法都可以去掉了</span>

        } 


下面是sql语句,以及我在后台写的方法,仅供参考和理解。

sql:


SELECT * FROM
 ( SELECT ROW_NUMBER() OVER (order by T.LogID desc)AS Row, * 
from UserLog t  WHERE  t.Deleted =0  ) TT 
WHERE TT.Row between 1 and 10


DBHelper代码:

 /// <summary>
        /// 分页获取数据列表
        /// </summary>
        public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("SELECT * FROM ( ");
            strSql.Append(" SELECT ROW_NUMBER() OVER (");
            if (!string.IsNullOrEmpty(orderby.Trim()))
            {
                strSql.Append("order by T." + orderby + " asc"); 
            }
            else
            {
                strSql.Append("order by T.LogID asc");
            }
            strSql.Append(")AS Row, *  from UserLog T  ");
            if (!string.IsNullOrEmpty(strWhere.Trim()))
            {
                strSql.Append(" where  " + strWhere);
            }
            strSql.Append(" ) TT");
            strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
            return DbHelperSQL.Query(strSql.ToString());
        }


好了,基本上把数据库和参数换成自己的就可以用了,试一下把。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值