提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|其它|编辑:郝浩|2011-09-01 15:01:27.000|阅读 1572 次
概述:一般开发绑定数据的时候,Repeater控件是非常好用的控件,但是很多.net开发人员苦恼于无法分页,于是开发一个基于Repeater的分页控件,现在拿出来和大家一起分享分享。写得不好大家可以尽管拍砖,源码在本文后面。其实这个分页控件非常简单,分页控件只是根据记录数和当前页数等设置而输出一个分页导航条而已,并没有参与真正的分页,具体如何从数据库读取分页数据,还需自己编写存储过程或者sql来实现。废话少说,简单介绍一下控件的功能:
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
一般开发绑定数据的时候,Repeater控件是非常好用的控件,但是很多.net开发人员苦恼于无法分页,于是开发一个基于Repeater的分页控件,现在拿出来和大家一起分享分享。写得不好大家可以尽管拍砖,源码在本文后面。其实这个分页控件非常简单,分页控件只是根据记录数和当前页数等设置而输出一个分页导航条而已,并没有参与真正的分页,具体如何从数据库读取分页数据,还需自己编写存储过程或者sql来实现。废话少说,简单介绍一下控件的功能:
* 支持数字分页
* 支持分页下拉框
* 支持输入跳转分页
* 同一个页面支持多个分页。
* 支持默认、中文、英文等模式使用。
* 内含漂亮且简洁的Css样式。
* 可自定义Css样式。
* 更多特点由你来发现。
一、分页控件的属性:
---可显示设置属性
ID //分页控件ID(同页内必须唯一) (string)
CssClass // Css样式 (string)
ShowPreNext //是否显示上一页下一页 (bool)
ShowPageNum //是否显示页码连接 (bool)
PageSplitNum //页码隔多少数字 (int:当ShowPageNum属性为true时生效)
ShowPageTips //是否显示当前页、记录数等信息 (bool)
ShowPageJump //是否显示下来框跳转 (bool)
ShowPageGo //是否显示输入页码跳转 (bool)
ShowPageLan //显示语言的类型 (int: 0 - 默认, 1 - 中文, 2 - 英语)
---不可显示设置属性
PageSize //每页记录数(int)
PageIndex //当前页码(int)
PageTotal //总页数(int:只读)
Records //总记录数(int)
二、分页控件的方法:
void SetPage(int records);
------ 函数说明 ------
功能:初始化分页控件
参数:records - 总记录数
输出:无
三、控件使用说明:
1. 引用控件到项目中
把控件Ling.Pager.dll引入到项目中,也就是直接复制这个dll到站点的bin目录下。
2. 前台Aspx加入控件Page1
在前台aspx顶部加入代码:
<%@ Register Assembly="Ling.Pager" Namespace="Ling.Pager" TagPrefix="cc1" %>
接着在前台aspx页面需要插入分页条的位置(如Repeater)插入代码:
1 <asp:Repeater ID="repList" runat="server">
2 <HeaderTemplate>
3 <table id="FLTable">
4 <tr>
5 <th>
6 ID
7 </th>
8 <th>
9 方案名称
10 </th>
11 <th>
12 描述
13 </th>
14 <th>
15 创建人
16 </th>
17 <th>
18 创建时间
19 </th>
20 </tr>
21 </HeaderTemplate>
22 <ItemTemplate>
23 <tr>
24 <td>
25 <%#Eval("SlnID")%>
26 </td>
27 <td>
28 <%#Eval("SlnName")%>
29 </td>
30 <td>
31 <%#Eval("Desc")%>
32 </td>
33 <td>
34 <%#Eval("Creater")%>
35 </td>
36 <td>
37 <%#Eval("CreateTime","{0:yyyy-MM-dd:HH:mm:ss}")%>
38 </td>
39 </tr>
40 </ItemTemplate>
41 <FooterTemplate>
42 </table>
43 </FooterTemplate>
44 </asp:Repeater>
45
46
47 <cc1:pager id="Pager1" runat="server">
48 </cc1:pager>
这样我们就把整个控件加入进去了。
3.后台绑定数据源及初始化控件
编写一个读取分页数据函数,例如(里面读取和分页过程略):
public DataTable GetDataList(int pageSize, int pageIndex, out int records)
{
DataTable dt; //返回的数据集
//.... //(从数据库读取数据省略)
records = ...; //赋值给总记录数(省略)
return dt;
}
至于如何读取分页数据,建议用存储过程进行分页,给出一个支持多表查询(Left join等)的存储过程分页:
分页存储过程SQL
-- =============================================
-- Foolin收集(来自网上,佚名)
-- Create date: 2010-09-22
-- Description: 存储过程分页,支持分页查询
-- 调用:(排序ASC不可少)
-- exec Wb_Page 'select * from [YouTable] ', 20, 0, 'CreateTime ASC, Money DESC'
-- =============================================
CREATE PROCEDURE [dbo].[SP_Page]
(
@Sql nvarchar(1024), --查询语句
@Sort nvarchar(100) = '', --排序字段
@PageSize int = 20, --分页大小
@PageIndex int = 1, --分页索引
@TotalCount int = 0 output --总数
)
AS
-- 值默认值
if (IsNUll(@PageSize,0)=0)
Set @PageSize=20
if (IsNull(@PageIndex,0)=0)
Set @PageIndex=1
set nocount on
/*声明查询字符串*/
declare @strSQL nvarchar(4000)
set @strSQL = ' select @TotalCount=count(*) from ('+@Sql+') as t '
/*取得查询结果总数*/
exec sp_executesql
@strSQL,
N'@TotalCount int=0 OUTPUT',
@TotalCount=@TotalCount OUTPUT
declare @ItemCount int
declare @_PageIndex int
set @_PageIndex = @PageIndex; --索引从1开始
--set @_PageIndex = @PageIndex + 1; --索引从0开始
/*确定搜索边界*/
set @ItemCount = @TotalCount - @PageSize * @_PageIndex
if(@ItemCount < 0)
set @ItemCount = @ItemCount + @PageSize
else
set @ItemCount = @PageSize
if(@ItemCount < 0) return 1
if(@Sort != '')
begin
/*声明排序变量*/
declare @IndexSort1 nvarchar(50), @IndexSort2 nvarchar(50),
@Sort1 nvarchar(50), @Sort2 nvarchar(50)
SET @Sort1 = @Sort
SET @Sort2 = Replace(Replace(Replace(@Sort, 'DESC', '
@SORT'), 'ASC', 'DESC'), '@SORT', 'ASC')
set @strSQL = 'SELECT * FROM
(SELECT TOP ' + STR(@ItemCount) + ' * FROM
(SELECT TOP ' + STR(@PageSize * @_PageIndex) + ' * FROM
('+@Sql+') AS t0
ORDER BY '+@Sort1 +') AS t1
ORDER BY '+@Sort2 +') AS t2
ORDER BY ' +@Sort
end
else
begin
set @strSQL = 'SELECT * FROM
(SELECT TOP ' + STR(@ItemCount) + ' * FROM
(SELECT TOP ' + STR(@PageSize * @_PageIndex) + ' * FROM
('+@Sql+') As t0)
aS t1)
AS t2'
end
exec sp_executesql
@strSQL
后台aspx.cs页面绑定Repeater数据源、初始化控件:
1 int records = 0; //定义输出全部记录数变量
2 repList.DataSource = GetDataList(Pager1.PageSize, Pager1.
PageIndex, out records); //获取数据源
3 repList.DataBind(); //绑定数据
4 Pager1.SetPage(totalCount); //初始化分页,总记录数作为参数传入。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:网络转载面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢