[ASP.NET服务器控件]OranPager 1.1.1.2 - 轻量级分页控件(URL参数机制,不带数据查询功能)演示&源码...

OranPager是一款自定义性强、逻辑清晰的ASP.NET分页控件,支持URL重写,可灵活调整样式,适用于多种应用场景。


更新日志
**********************************************
2009/9/13 Version:1.1.1.1
*1 修复当记录总数(RecordCount)为0时。依然出现[下一页]、[尾页]按钮的BUG。
*2 修改当在快捷页码跳转工具里输入的页码有误的alert提示语,增加属性 GotoAlertFormatString

2009/9/14 Version:1.1.1.2
 *1 当请求的页码大于本次最大页码时,PageIndex返回最本次最大页码

0 概论
以前还不知道别人已经有分享过分页控件的时候,竹子自己写过一个简单的分页控件,起名叫 Oran.WebControl.IndexNavigator(索引导航),很简朴的一个分页控件,但功能也基本够用,后来,为了使用户体验更好,需要功能稍加丰富些的分页控件,跟着就找到了吴旗娃的aspnetpager,但在使用过程中,发现这个控件并不好用,主要问题有:
  • 生成HTML代码结构不良好,样式非常难控制
  • 自定义性不强,表示形式受限
所以就促使竹子想自己开发一个分页控件,解决以上问题。竹子刚开始还想在aspnetpager的基础上修改,因为她是开源的,但发现代码过于复杂冗长,懒得看,怕等看完理解后所耗的时间够竹子全新开发一个,所以索性根据以往项目需求和可能的需求,全新设计开发。
主角出场: Oran.WebControl.OranPager
控件名称很好理解,Oran是竹子自己起的英文名字,Pager,即分页器。

1 主要特点,优点
  1. 以URL参数机制进行分页。
  2. 生成的HTML代码结构良好,样式易控制。
  3. 任何一部分元素均可单独设置CSS样式类名,自定义性强。
  4. 支持URL重写(UrlRewrite)规则。
  5. 逻辑简单,程序效率较高。
所有部分显示出来范例如下图:


页码下拉列表和快速跳转工具影响整体美观,另外,一般情况也是很不必要的,所以,建议不要打开这两个部分,那么,范例效果将如下图:


2 分页主要部件介绍


  • 自定义文本(CustomizeText)
    显示自定义HTML代码,一般用途有显示记录总数,页码总数等。
  • 首页/上一页/下一页/尾页
    此4个对象可设置单独的CSS样式类名。在实际应用中,此4个对象经常是以图片的形式显示,但在IE不同版本和不同的浏览器之间,对图片和文本的位置显示不一致,可以通过样式的background-image解决。
  • 数字页码
    页码索引,可设置最多显示N个页码,如果前/后面还有页码,根据设定可显示/隐藏『更多页码索引』。
  • 页码下拉列表
    自动选中当前页码下拉列表项,当必变项时,将改变location.href属性跳转到指定页。
  • 页码快速跳转工具
    在文本框里输入数字,按回车键或单击旁边的按钮,将改变location.href属性跳转到指定页。

3 URL重写规则
启用了伪静态分页,请将 EnableUrlRewrite 设为 true,并设置URL重写规则属性UrlRewritePattern,该属性并不是设置你的URLRewrite规则,而只是一个URL格式化字符串,其中只有一个参数 {0} 表示页码参数,如 URLRewrite 规则是 ^~/demo-(\d+)\.html$,则UrlRewritePattern属性设置为 demo-{0}.html
PS:设置了UrlRewritePattern属性并不代表就启用了伪静态分页,必须将EnableUrlRewrite设为true才启用了伪静态分页。

4 重要参数说明
  • PageUrlParameter
    页码URL参数名称,默认为 page。
  • PageSize
    页大小,即每页显示的最大记录数。程序根据PageSize计算总页数(PageCount),所有页码索引相关。必须设置。
  • RecordCount
    总记录数,现在查询的数据的总记录数。必须设置。
  • PageIndex
    当前请求页索引,即现在访问的是第几页,一般不需要设置该参数,默认从URL里解析page参数值,如果解析失败,则返回1。

6 自定义布局
根据CustomizeLayoutFormatString属性的格式,用分页部件最终生成的HTML替换所包含的格式。
当启用自定义布局时,请注意:
  • 任何是否显示某部件的属性将无效,部件是否显示取决于CustomizeLayoutFormatString是否包含该格式
  • 任何容器的标签名属性将无效,控件不再输出任何容器,非除CustomizeLayoutFormatString属性里包含容器
  • 各部件的格式字符串依然有效
7 参数
参数名类型默认值说明
AlwayShowbooltrue当记录总数为0时是否总是显示分页导航。
不显示是指所有分页部件都不显示。
AlwayShowPreviousNextFirstLastboolfalse当上一页/下一页/首页/尾页无效时是否总是显示他们。
例如,当前页为1,那么,[首页]、[上一页]是无效的。
GotoBoxTextBoxCssClassstringoran_pg_txt[跳转到第N页]快捷工具文本框的样式类名
GotoBoxButtonCssClassstringoran_pg_btn[跳转到第N页]快捷工具按钮的样式类名
PageListCssClassstring [页码下拉列表]的样式类名
TagNamestringdiv控件标签名称
整个控件最外部容器的标签名,如果为空,则没有容器。
PageUrlParameterstringpage获取或设置页码URL参数名称。
默认为page
PageSizeint20页大小(每页显示的最大记录数)。
值必须为正整数
PageIndexint 当前页码。
值必须为正整数,默认从URL解析page参数值,如果该参数不存在或解析失败则返回1。
开发人员一般不必对该属性进行操作。
RecordCountint0记录总数。
值必须为非负整数。
开发人员永远不要忘记设置该属性
PageCountint 获取页码总数。
控件根据PageSize和RecordCount自动计算该值。
开发人员一般不必对该属性进行操作。
PreviousPageTextstring上一页[上一页]呈现的内容
ShowPreviousPagebooltrue是否显示[上一页]按钮
NextPageTextstring下一页[下一页]呈现的内容
ShowNextPagebooltrue是否显示[下一页]按钮
FirstPageTextstring首页[首页]呈现的内容
GotoButtonTextstringGo[跳转到第N页]按钮显示的文本
ShowFirstPagebooltrue是否显示[首页]按钮。
当值为true且[首页]按钮有效时,才能显示[首页]按钮
LastPageTextstring尾页[尾页]呈现的内容
ShowLastPagebooltrue是否显示[尾页]按钮。
当值为true且[尾页]按钮有效时,才能显示[尾页]按钮
FirstPageCssClassstringoran_pg_fp[首页]样式类名
PreviousPageCssClassstringoran_pg_pp[上一页]样式类名
NextPageCssClassstringoran_pg_np[下一页]样式类名
LastPageCssClassstringoran_pg_lp[尾页]样式类名
NumericButtonCountint10显示数字页码按钮的个数。
NumericButtonTextFormatStringstring  数字页码呈现的内容的格式数字页码呈现的内容的格式。
包含格式:
{0}表示超链接地址}表示页码数字。
默认值:<a href=\"{0}\">{1}</a>
CurrentNumericButtonCssClassstringoran_pg_cur当前页数字按钮的样式类名
ShowNumericButtonbooltrue是否显示页码按钮
MorePreviousNumericButtonTextstring<...[前面还有更多页码]呈现的文本
MoreNextNumericButtonTextstring...>[后面还有更多页码]呈现的文本
ShowMoreNumericButtontruetrue是否显示[更多页码按钮]
ShowGotoBoxboolfalse是否显示[跳转到]的快捷工具
ShowPageIndexListboolfalse是否显示页码列表
PagerTagNamestring 分页控件主要部分容器标签分页控件主要部分容器标签名称,如果为空,则没有容器。
主要部分指:[首页]、[上一页]、[数字页码]、[下一页]、[尾页]、[页码列表]、[快速跳转工具]、[前/后还有更多数字页码]。
PagerCssClassooran_pg_main分页控件主要部分样式类名
CustomizeTextstringstring.Empty自定义文本
ShowCustomizeTextboolfalse是否显示自定义文本/tr>
CustomizeTextCustomizeTextAlignenum 自定义文本呈现的位置。
默认值:CustomizeTextAlignEnum.Left
UrlRewritePatternstringstring.EmptyURL重写格式。
包含格式:
{0}表示页码。
EnableUrlRewriteboolfalse是否启用URL重写
UrlPathFilenamestring URL请求的文件名。必对该属性进行操作。
QueryFormatStringstring 获取URL参数格式字符串。 开发人员一般不必对该属性进行操作。
CustomizeLayoutFormatStringstring 自定义布局格式化字符串。 包含格式:
{$text$} 自定义文本
{$first$} 首页
{$pre$} 上一页
{$num$} 数字页码
{$next$} 下一页
{$last$} 尾页
{$pre_more$} 前面还有更多页码
{$next_more$} 后面还有更多页码
{$list$} 页码下拉列表
{$goto$} 直接跳转{$goto$} 直接跳转到第N页快捷工具
注意:
控件以正则page=d*替换URL参数,page指属性UrlPathFilename。
值不包含的格式字符串将不会被输出。
EnableCustomizeLayoutboolfalse是否启用自定义布局
GotoAlertFormatStringstring页码必须是数字且不能大于最大页码 {$pc$}。获取或设置[页码跳转]时输入的页码错误提示语,包含格式:{$pc$} 最大页码数

8 参考样式
/* 分页器 */
.pager 
{  height : 25px ;  line-height : 25px ;  background : #F9F9F9 ;  padding : 0 5px ;  border : solid 1px #aebfcb ;  text-align : right ; }
.pager a 
{  border : 1px solid #d4e3e9 ;  padding : 0 3px ;   margin-right : 5px ; }
.pager .num_btns 
{ float : right ;  font-family : Tahoma ; }
.pager .oran_pg_cur 
{  border : 1px solid #D5D5D5 ; background-color : #5984ac ;  color : #fff ; }
.pager a:hover 
{   border-color : #5984ac ;  text-decoration : none ;   }
.pager .cust_txt 
{  float : left ; }
.pager .oran_pg_fp 
{  background : url(../img/first_page.gif) 4px 4px no-repeat ;  padding-right : 9px ; }
.pager .oran_pg_pp 
{  background : url(../img/pre_page.gif) 4px 4px no-repeat ;  padding-right : 5px ; }
.pager .oran_pg_np 
{  background : url(../img/next_page.gif) 43px 4px no-repeat ;  padding-right : 12px ; }
.pager .oran_pg_lp 
{  background : url(../img/last_page.gif) 29px 4px no-repeat ;  padding-right : 12px ; }
.pager select 
{  font-size : 8px ;  margin-top : 5px ;   }
.pager .oran_pg_txt 
{  height : 15px ;  border : solid 1px #d4e3e9 ;  width : 20px ;  margin-left : 5px ; }
.pager .oran_pg_btn 
{  height : 15px ;  border : solid 1px #d4e3e9 ;  margin-left : 5px ;  font-size : 9px ;  background : #5984ac ;  color : #fff ;   }

转载于:https://www.cnblogs.com/iRed/archive/2009/08/28/1555728.html

内容概要:本文详细介绍了一个基于Java和Vue的联邦学习隐私保护推荐系统的设计与实现。系统采用联邦学习架构,使用户数据在本地完成模型训练,仅上传加密后的模型参数或梯度,通过中心服务器进行联邦平均聚合,从而实现数据隐私保护与协同建模的双重目标。项目涵盖完整的系统架构设计,包括本地模型训练、中心参数聚合、安全通信、前后端解耦、推荐算法插件化等模块,并结合差分隐私与同态加密等技术强化安全性。同时,系统通过Vue前端实现用户行为采集与个性化推荐展示,Java后端支撑高并发服务与日志处理,形成&ldquo;本地训练&mdash;参数上传&mdash;全局聚合&mdash;模型下发&mdash;个性化微调&rdquo;的完整闭环。文中还提供了关键模块的代码示例,如特征提取、模型聚合、加密上传等,增强了项目的可实施性与工程参考价值。 适合人群:具备一定Java和Vue开发基础,熟悉Spring Boot、RESTful API、分布式系统或机器学习相关技术,从事推荐系统、隐私计算或全栈开发方向的研发人员。 使用场景及目标:①学习联邦学习在推荐系统中的工程落地方法;②掌握隐私保护机制(如加密传输、差分隐私)与模型聚合技术的集成;③构建高安全、可扩展的分布式推荐系统原型;④实现前后端协同的个性化推荐闭环系统。 阅读建议:建议结合代码示例深入理解联邦学习流程,重点关注本地训练与全局聚合的协同逻辑,同时可基于项目架构进行算法替换与功能扩展,适用于科研验证与工业级系统原型开发。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值