当前位置: 代码迷 >> Sql Server >> c#EasyUI 查询分页有关问题
  详细解决方案

c#EasyUI 查询分页有关问题

热度:63   发布时间:2016-04-24 09:43:27.0
c#,EasyUI 查询分页问题?
前台传入页码,和页数,还有查询的内容,进行查询 select * from (select *,ROW_NUMBER() over (order by No) as id from TB_PropCustomBasicData) as tmp where 1=1 and name = 'xxx' and tmp.id between (p_iPageIndex -1)* p_iSize,p_iSize * p_iPageIndex,这样子写后,只能查询到当前第一页中有的,其余的查询不出来,该如何写,谢谢大神!!!!
------解决思路----------------------
引用:
Quote: 引用:

使用easyUI 分页你得返回一个最大记录数MaxCount给datagrid才行的


那该如何做才能好一点了,大神,谢谢

大概这样
--写个存储过程,返回两个结果集
--1、
DECLARE @name VARCHAR(200)
,@PageIndex INT
,@PageSize INT--传入参数
DECLARE @StartRN INT
, @EndRn INT
, @MaxCount INT
, @PageCount INT

SELECT @MaxCount=COUNT(*) FROM from TB_PropCustomBasicData WHERE name=@name

IF @PageSize=0
SET @PageCount=1
ELSE
SET @PageCount = ((@MaxCount -1) / @PageSize) + 1; --页数

SELECT @MaxCount AS MaxCount ,@PageCount AS PageCount  ---结果集一,得到总数和总页数,easyUI可以不用页数

SET @StartRN=(@PageIndex - 1) * @PageSize + 1  --计算起始rn
SET @EndRn=@PageIndex*@PageSize

 select * 
 from (
select *,ROW_NUMBER() over (order by No) as id 
from TB_PropCustomBasicData
where 1=1 
and name = 'xxx' 
) as tmp 
WHERE tmp.id between @StartRN AND @EndRn

页面上设置好参数easyUI 上百度
 $('#tt').datagrid({
            url: 'admin/..../xxx',
            width: 900,
            //height: 350,
            title: '列表',
            //iconCls: 'icon-save',
            fitColumns: true,
            rownumbers: true, //是否加行号
            pagination: true, //是否显式分页
            pageSize: 10, //页容量,必须和pageList对应起来,否则会报错
            pageNumber: 1, //默认显示第几页
            autoRowHeight: true,//自适应高度
            nowrap: false,// 如果为true,则在同一行中显示数据。设置为true可以提高加载性能。
            pageList: [10, 20, 30],//分页中下拉选项的数值
            columns: [[

请求到数据JSON返回

            var jsonresult = new { total = maxCount, rows = list };

            return Json(jsonresult, JsonRequestBehavior.AllowGet);
  相关解决方案