pagecontrol分页

likeyrain 2012-01-09 08:03:29
大家好:
请教一下,pagecontrol的时候,分页标签的效果做不到想要的效果,想请教一下,怎样自己画分页标签啊?
...全文
372 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
likeyrain 2012-01-29
  • 打赏
  • 举报
回复
顶一下,准备结帖
likeyrain 2012-01-17
  • 打赏
  • 举报
回复
最后还是的图片自己画。。。。
likeyrain 2012-01-14
  • 打赏
  • 举报
回复
找了N多皮肤控件还是不行。
只有两个分页,主要是想把Tab放到左边,把两个Tab的高度和调到跟主体一样高,选中的时候Tab和主体是直线过度,不会有高底的情况,可不管怎样调还是调不到。皮肤控件做出来的皮肤只能改变Tab里的显示,可控件本身都会有高底的情况,皮肤实现不了。
lyhoo163 2012-01-13
  • 打赏
  • 举报
回复
raize控件包里的pagecontrol效果不错。但不支持换肤。
meiseagull 2012-01-12
  • 打赏
  • 举报
回复
用raize控件就可以了
z109876543210 2012-01-12
  • 打赏
  • 举报
回复
z109876543210 2012-01-12
  • 打赏
  • 举报
回复
AlphaControls 吧。算是比较漂亮的了。而且有免费版的
http://www.alphaskins.com/dwnld.php
sundayzhao 2012-01-12
  • 打赏
  • 举报
回复
只能换控件了,delphi自带就是不好看
Corn1 2012-01-12
  • 打赏
  • 举报
回复
raize控件包里的pagecontrol效果不错。
jacknes009 2012-01-10
  • 打赏
  • 举报
回复
使用nootbook可以让效果更好。
爱蹄子的羊头 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sz_haitao 的回复:]

自己在Timage里画tab,判断点击位置,显示不同的panel,隐藏其它panel
[/Quote]


如此甚好 正合我意。。。

凡是自己要特效的控件,,基本靠画。。
likeyrain 2012-01-10
  • 打赏
  • 举报
回复
用的是skinpagecontrol,把分页标签设到左边的时候,标签与分页间总有几个像数的高度差,找不到对应的属性,加皮肤后,还是有那个高度差存在
kaikai_kk 2012-01-10
  • 打赏
  • 举报
回复
想要啥效果?
加个皮肤就漂亮了
haitao 2012-01-09
  • 打赏
  • 举报
回复
自己在Timage里画tab,判断点击位置,显示不同的panel,隐藏其它panel
erhan 2012-01-09
  • 打赏
  • 举报
回复
你这样问别人不好回答的。

我觉得你应该问你想用pagecontrol实现个什么功能,或者哪个组件能实现。
DelphiTeacher 2012-01-09
  • 打赏
  • 举报
回复
这个一般自己开发一个pagecontrol,也可以用按钮和nootbook组合
jspPageControlor分页插件11.2版:
一、插件简介

jspPageControlor分页插件是千里web架构实验室成员--刘捷开发的插件,用来解决jsp程序设计中分页所带来的不便,让程序开发者轻松的实现分页功能。

jspPageControlor分页插件具有以下特点:
1、独立于jsp程序。不管jsp使用的什么开发模式,也不管使用何种数据库,只要按插件要求进行返回操作,就可轻松的实现分页
2、此插件将分页与搜索分离,高度解耦合,可在分页的同时,轻松实现搜索操作。
3、程序绿色,简洁,系统资源消耗低,执行速度快,效率高。
4、使用简单,方便,也可根据自己需要,对插件的某些方法进行重写。

二、使用说明

1、此插件将数据库查询和分页操作分离开,在查询的时候,不管采用什么设计模式,都必须实现 PageListener接口。 2、接口里面包含四个方法 (1)、public List doSelect(int recordStart,int sizePage),参数recordStart表示从第几条记录开始查询。参数sizePage表示一次查几条记录。返回一个list对象(该list对象可以是 一个记录集,也可以是一个POJO类对象)
(2)、public int getCount(),查询该表中的记录总数,返回一个int对象。
(3)、public void close(),放置所有关闭操作的方法。
3、调用页面,必须添加PageListener监听器,即实现addPageListener(Object)方法,参数为操作 数据库类的对象。
4、必须实例化插件的pageConfig对象,将一些配置信息,如HttpServletRequest对象传给此对象,并将此对象传给PageControl对象。
5、用getRecord()方法获取存有记录的list对象;
用getFirstPage()方法获取'首页'的标记;
用getPageUp()方法获取'上一页'的标记;
用getPageDown()方法获取'下一页'的标记;
用getLastPage()方法获取'末页'的标记;
用getPageForward()方法获取'跳转到第几页'的输入框标记;
用getCountRecord()方法获取总记录数;
用getCountPage()方法获取总页数;
用getCurrentPage()方法获取当前页数;
6、如果需要把上一页,下一页等标记换成图片,则只需调用
setPageDown('图片路径+图片名'),
setPageUp('图片路径+图片名'),
setFirstPage('图片路径+图片名'),
setLastPage('图片路径+图片名');
详细操作请查看帮助文档和具体实现案例;

三、改进

此版插件融合了搜索,将分页与搜索独立。

四、插件组成

PageControlor分页插件(此插件仅支持jsp) 包含4个部分:
PageControlor分页插件(包含源码);
分页的帮助文档(包含HTML格式的java文档和CHM格式的API文档);
分页插件使用案例(以一个问吧系统为例,详细讲解插件的使用方法);

五、运行配置

1、运行环境为jdk(1.4以上),Tomcat(5.0以上),mysql(5.0.x);
2、运行时须改动database.properties,把数据库名,用户名和密码改称自己数据库的设置;
3、将posts.sql文件导入到您的mysql服务器里面。



备注:
由于API帮助文档是1.1版的,如有信息与此说明文档冲突,则按此文档标准进行操作。
1.第一步:导入paging.jar包。 2.第一步:调用; //通过调用不同的构造函数生成不同导航字符串 PageControl pageControl = new PageControl("PageTest", page, 30); //数字列表导航形式,首尾页时仍显示上一页,下一页(默认形式) PageControl pageControl2 = new PageControl("PageTest", page, 30, false); //数字列表导航形式,首尾页时不显示上一页,下一页 PageControl pageControl3 = new PageControl("PageTest", page, 30, false, false);//数字列导航表形式,不显示首尾页 PageControl pageControl4 = new PageControl("PageTest", page, 30, PageType.WORDTYPE);//文字导航形式 PageControl pageControl5 = new PageControl("PageTest", page, 30, false, PageType.WORDTYPE);//文字导航形式,不显示首尾页 request.setAttribute("pageControlNumberType1", pageControl.pageControl()); request.setAttribute("pageControlNumberType2", pageControl2.pageControl()); request.setAttribute("pageControlNumberType3", pageControl3.pageControl()); request.setAttribute("pageContrlWordType4", pageControl4.pageControl()); request.setAttribute("pageContrlWordType5", pageControl5.pageControl()); request.getRequestDispatcher("index.jsp").forward(request, response); 3.第三步:通过jstl显示: 数字列表导航形式,首尾页时仍显示上一页,下一页(默认形式):${pageControlNumberType1 }
数字列表导航形式,首尾页时不显示上一页,下一页:${pageControlNumberType2 }
数字列表导航形式,不显示首尾页:${pageControlNumberType3 }
文字导航形式:${pageContrlWordType4 }
文字导航形式,不显示首尾页:${pageContrlWordType5 }
1.第一步:导入paging.jar包。 2.第一步:调用; //通过调用不同的构造函数生成不同导航字符串 PageControl pageControl = new PageControl("PageTest", page, 30); //数字列表导航形式,首尾页时仍显示上一页,下一页(默认形式) PageControl pageControl2 = new PageControl("PageTest", page, 30, false); //数字列表导航形式,首尾页时不显示上一页,下一页 PageControl pageControl3 = new PageControl("PageTest", page, 30, false, false);//数字列导航表形式,不显示首尾页 PageControl pageControl4 = new PageControl("PageTest", page, 30, PageType.WORDTYPE);//文字导航形式 PageControl pageControl5 = new PageControl("PageTest", page, 30, false, PageType.WORDTYPE);//文字导航形式,不显示首尾页 request.setAttribute("pageControlNumberType1", pageControl.pageControl()); request.setAttribute("pageControlNumberType2", pageControl2.pageControl()); request.setAttribute("pageControlNumberType3", pageControl3.pageControl()); request.setAttribute("pageContrlWordType4", pageControl4.pageControl()); request.setAttribute("pageContrlWordType5", pageControl5.pageControl()); request.getRequestDispatcher("index.jsp").forward(request, response); 3.第三步:通过jstl显示: 数字列表导航形式,首尾页时仍显示上一页,下一页(默认形式):${pageControlNumberType1 }
数字列表导航形式,首尾页时不显示上一页,下一页:${pageControlNumberType2 }
数字列表导航形式,不显示首尾页:${pageControlNumberType3 }
文字导航形式:${pageContrlWordType4 }
文字导航形式,不显示首尾页:${pageContrlWordType5 }
/* * @(#)PageControl.java 1.00 2004-9-22 * * Copyright 2004 2004 . All rights reserved. * PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package com.hexiang.utils; /** * PageControl, 分页控制, 可以判断总页数和是否有上下页. * * 2008-07-22 加入输出上下分页HTML代码功能 * * @author HX * @version 1.1 2008-9-22 */ public class PageBean { /** 每页显示记录数 */ private int pageCount; /** 是否有上一页 */ private boolean hasPrevPage; /** 记录总数 */ private int recordCount; /** 是否有下一页 */ private boolean hasNextPage; /**总页面数 */ private int totalPage; /** 当前页码数 */ private int currentPage; /** * 分页前的页面地址 */ private String pageUrl; /** * 输出分页 HTML 页面跳转代码, 分链接和静态文字两种. * 2008-07-22 * @return HTML 代码 */ public String getPageJumpLinkHtml() { if(StringUtil.isEmpty(pageUrl)) { return ""; } // 检查是否有参数符号, 没有就加上一个? if(pageUrl.indexOf('?') == -1) { pageUrl = pageUrl + '?'; } StringBuffer buff = new StringBuffer(""); // 上一页翻页标记 if(currentPage > 1) { buff.append("[ 上一页 ] "); } else { buff.append("[ 上一页 ] "); } // 下一页翻页标记 if(currentPage < getTotalPage()) { buff.append("[ 下一页 ] "); } else { buff.append("[ 下一页 ] "); } buff.append(""); return buff.toString(); } /** * 输出页码信息: 第${currentPage}页/共${totalPage}页 * @return */ public String getPageCountHtml() { return "第" + currentPage + "页/共" + getTotalPage() + "页"; } /** * 输出 JavaScript 跳转函数代码 * @return */ public String getJavaScriptJumpCode() { if(StringUtil.isEmpty(pageUrl)) { return ""; } // 检查是否有参数符号, 没有就加上一个? if(pageUrl.indexOf("?") == -1) { pageUrl = pageUrl + '?'; } return "<script>" + "// 页面跳转函数\n" + "// 参数: 包含页码的表单元素,例如输入框,下拉框等\n" + "function jumpPage(input) {\n" + " // 页码相同就不做跳转\n" + " if(input.value == " + currentPage + ") {" + " return;\n" + " }" + " var newUrl = '" + pageUrl + "&page=' + input.value;\n" + " document.location = newUrl;\n" + " }\n" + " 转到 输入页码: * @return */ public String getPageFormJumpHtml() { String s = "转到\n" + "\t \n" + " \n" + " 输入页码: \n" + " "; return s; } /** * 进行分页计算. */ private void calculate() { if (getPageCount() == 0) { setPageCount(1); } totalPage = (int) Math.ceil(1.0 * getRecordCount() / getPageCount()); // 总页面数 if (totalPage == 0) totalPage = 1; // Check current page range, 2006-08-03 if(currentPage > totalPage) { currentPage = totalPage; } // System.out.println("currentPage=" + currentPage); // System.out.println("maxPage=" + maxPage); // // Fixed logic error at 2004-09-25 hasNextPage = currentPage < totalPage; hasPrevPage = currentPage > 1; return; } /** * @return Returns the 最大页面数. */ public int getTotalPage() { calculate(); return totalPage; } /** * @param currentPage * The 最大页面数 to set. */ @SuppressWarnings("unused") private void setTotalPage(int maxPage) { this.totalPage = maxPage; } /** * 是否有上一页数据 */ public boolean hasPrevPage() { calculate(); return hasPrevPage; } /** * 是否有下一页数据 */ public boolean hasNextPage() { calculate(); return hasNextPage; } // Test public static void main(String[] args) { PageBean pc = new PageBean(); pc.setCurrentPage(2); pc.setPageCount(4); pc.setRecordCount(5); pc.setPageUrl("product/list.do"); System.out.println("当前页 " + pc.getCurrentPage()); System.out.println("有上一页 " + pc.hasPrevPage()); System.out.println("有下一页 " + pc.hasNextPage()); System.out.println("总页面数 " + pc.getTotalPage()); System.out.println("分页 HTML 代码 " + pc.getPageJumpLinkHtml()); } /** * @return Returns the 当前页码数. */ public int getCurrentPage() { return currentPage; } /** * 设置当前页码, 从 1 开始. * @param currentPage * The 当前页码数 to set. */ public void setCurrentPage(int currentPage) { if (currentPage <= 0) { currentPage = 1; } this.currentPage = currentPage; } /** * @return Returns the recordCount. */ public int getRecordCount() { return recordCount; } /** * @param recordCount * The recordCount to set. */ public void setRecordCount(int property1) { this.recordCount = property1; } /** * @return Returns the 每页显示记录数. */ public int getPageCount() { return pageCount; } /** * @param pageCount * The 每页显示记录数 to set. */ public void setPageCount(int pageCount) { this.pageCount = pageCount; } public String getPageUrl() { return pageUrl; } public void setPageUrl(String value) { pageUrl = value; } }

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧