`

大数据量分页下拉菜单设计

    博客分类:
  • java
 
阅读更多

下拉菜单的数据是1、2、3...100、200、300..1000、2000

public String setPageNav(int absolutePage,int pageSize)

    {

        String strTemp1 = "";

        String strTemp2 = "";

        String strBlock1 = "";

        String strBlock2 = "";

        int i;

        String strPageNav="";

        StringBuffer bffPageNav=new StringBuffer();

        int pageCount;

        boolean haveLastPage;

        boolean haveFirstPage;

        int nextPage;                //下页数

        int prePage;                //前页数

        int lastPage;                //最后一页

        int firstPage;            //第一页

        if(absolutePage<1) absolutePage=1;

       

        if(recordCount == 0)

        {

            firstPage = -1;

            haveFirstPage = false;

            lastPage = -1;

            haveLastPage = false;

            pageCount = 0;

            prePage = -1;

            nextPage = -1;

        }

        else

        {

            if(recordCount%pageSize == 0)

            {

                pageCount = recordCount/pageSize;

            }

            else

            {

                pageCount = recordCount/pageSize + 1;

            }

            firstPage = 1;

            haveFirstPage = true;

            lastPage = pageCount;

           

            if(absolutePage == 1)

            {

                prePage = -1;

                haveFirstPage = false;

                haveLastPage = false;

            }

            else

            {

                prePage = absolutePage -1;

                haveLastPage = true;

            }

            if(absolutePage == pageCount)

            {

                nextPage = -1;

                haveLastPage = false;

            }

            else

            {

                nextPage = absolutePage + 1;

                haveLastPage = true;

            }

        }

        if(recordCount != 0)

        {

            //strPageNav="<select name='page' size='1' onChange='movePage(document.all.page.value)'>";

            bffPageNav.append("<select name='page' size='1' onChange='movePage(this.value)'>");

            for(i=1;i<=pageCount;)

            {

                if(absolutePage==i)

                {

                    //strPageNav=strPageNav+"<option value='"+Integer.toString(absolutePage)+"' selected>"+Integer.toString(absolutePage)+"</option>";

                    bffPageNav.append("<option value='"+Integer.toString(absolutePage)+"' selected>"+Integer.toString(absolutePage)+"</option>");

                }

                else

                {

                    //strPageNav=strPageNav+"<option value='"+Integer.toString(i)+"'>"+Integer.toString(i)+"</option>";

                    bffPageNav.append("<option value='"+Integer.toString(i)+"'>"+Integer.toString(i)+"</option>");

                }

                if(absolutePage<=i+100&&absolutePage>i-100)

                    i++;

                else if(absolutePage>=i-1000 && absolutePage<= i+1000)

                    i=(i/100)*100+100;

                else

                    i=(i/1000)*1000+1000;

            }

            //strPageNav=strPageNav+"</select>";

            bffPageNav.append("</select>");

            if(!haveFirstPage)

            {

                prePage=absolutePage;

            }

                strBlock1 = "&nbsp;<a href='#' onClick='movePage("+Integer.toString(firstPage)+")'>第一页</a>&nbsp;<a href='#' onClick='movePage("+ Integer.toString(prePage) +")'>上一页</a>&nbsp;";

            if(!haveLastPage)

            {

                nextPage=absolutePage;

            }

                strBlock2 = "<a href='#' onClick='movePage("+ Integer.toString(nextPage) +")'>下一页</a>&nbsp;<a href='#' onClick='movePage("+Integer.toString(lastPage)+")'>最后页</a>&nbsp;";

            if(absolutePage*pageSize < recordCount)

            {

                strTemp2 = Integer.toString(absolutePage*pageSize);

            }

            else

            {

                strTemp2 = Integer.toString(recordCount);

            }

            strTemp1 = Integer.toString((absolutePage-1) * pageSize+1);   

            strTemp1 = "<td align=left valign=bottom width=54% style='white-space: nowrap;'>当前显示:第 "+ strTemp1 + " 至 第 " + strTemp2 +" 条(共 " + Integer.toString(recordCount) + " 条) 第 "+ Integer.toString(absolutePage) + " 页/共 " + Integer.toString(pageCount) + " 页</td>";

            strPageNav ="<td align=right valign=bottom width=46% style='white-space: nowrap;'>"+strBlock1 + strBlock2+"第 "+bffPageNav.toString() +" 页</td>";

            strPageNav = strTemp1 + strPageNav;

        }else

            strPageNav="<td align=left valign=bottom width=54% style='white-space: nowrap;'>当前显示:第 0 至 第 0 条(共 0 条) 第 0 页/共 0 页</td><td align=right valign=bottom width=46%>&nbsp;<a href='#' >第一页</a>&nbsp;<a href='#' >上一页</a>&nbsp;<a href='#'>下一页</a>&nbsp;<a href='#' >最后页</a>&nbsp;第  <select name='page' size='1'></select> 页</td>";

        strPageNav="<table width=\"100%\" border=\"0\"><tr>"+strPageNav+"</tr></table>";

        return strPageNav;

    }   

分享到:
评论

相关推荐

    jQuery带分页的下拉菜单选择框代码

    &lt;title&gt;jQuery分页下拉菜单 &lt;!-- 下拉菜单元素 --&gt; &lt;select id="paged-select"&gt;&lt;/select&gt; &lt;script src="https://code.jquery.com/jquery-3.6.0.min.js"&gt;&lt;/script&gt; &lt;script src="js/plugin.js"&gt;&lt;/script&gt; ...

    jQuery带分页的下拉菜单选择框代码.zip

    jQuery实现分页下拉菜单的基本步骤可能如下: 1. **初始化**: 在页面加载完成后,jQuery会选择目标元素(例如,带有特定类名的`&lt;select&gt;`元素)并应用必要的样式。 2. **数据绑定**: 如果数据是从服务器动态获取的...

    表单输入框下拉菜单全攻略

    1. 延迟加载:对于大数据量的选项,可以采用懒加载策略,只在用户展开下拉菜单时加载部分数据。 2. 选择记忆:利用cookies或localStorage保存用户的常选项,提高用户体验。 七、无障碍性(A11Y) 1. 合规性:确保...

    ios-下拉菜单.zip

    下面我们将深入探讨这种下拉菜单的设计原理、实现方式以及可能的应用场景。 首先,下拉菜单设计的核心是用户体验。它允许用户在一个较小的空间内显示大量选项,避免了在屏幕上占据过多空间。"dropDownMenu"通过滑动...

    javascript 下拉菜单(各种各样的)

    7. 功能扩展:除了基本的展开和关闭,下拉菜单还可以扩展更多功能,如搜索过滤、分页、无限滚动等。这些功能通常需要更复杂的JavaScript逻辑和数据结构。 8. 库和框架:有许多现成的JavaScript库和框架,如jQuery ...

    可定制的iOS下拉菜单.zip

    6. **性能优化**:如果下拉菜单包含大量选项,开发者需要考虑性能优化,如懒加载、分页加载等策略,以避免一次性加载所有数据导致的卡顿。 7. **Swift或Objective-C**:此项目可能是用Swift或Objective-C编写的。...

    select下拉菜单美化

    在处理大量数据时,需要注意优化,如延迟加载、分页加载等。 5. **响应式设计** 在移动设备上,`select`的默认行为可能更符合用户的操作习惯。使用`select2`时,要确保在移动端的体验同样良好,可以考虑添加媒体...

    仿Ios下拉菜单

    - 对于大量数据,考虑使用懒加载或分页加载策略,避免一次性加载过多内容导致性能下降。 - 优化cell复用,确保在滚动过程中不会出现重用错误。 通过以上步骤,我们可以构建出一个功能完善、视觉一致的仿iOS美团...

    swift-支持搜索和其他很棒定制的iOS下拉菜单

    这种功能对于数据量大或者分类多的场景非常实用,例如在设置应用中选择地区、筛选列表等。 在iOS开发中,我们通常使用UIPickerView或者UISegmentedControl来实现简单的下拉选择效果,但这些原生控件往往无法满足...

    GridView和下拉菜单DropDownList结合

    - **性能优化**:对于大数据量的场景,应考虑分页显示和懒加载策略,避免一次性加载过多数据导致页面响应慢。 - **安全性**:在处理敏感数据时,应确保数据传输加密,防止数据泄露。 通过以上分析,我们可以看到...

    强大的jQuery下拉菜单插件

    **jQuery下拉菜单插件详解** 在Web开发中,下拉菜单是一种常见的交互元素,用于在有限的空间内展示丰富的选项。jQuery,一个流行的JavaScript库,提供了丰富的插件来实现各种功能,包括创建复杂的下拉菜单。本文将...

    jQuery搜索框插件下拉菜单选择代码.zip

    在实际项目中,这个插件还可以进一步扩展,例如增加分页功能以处理大量数据,或者添加实时搜索功能,无需等待用户停止输入即可显示结果。此外,还可以考虑优化性能,避免在大量数据上频繁进行过滤操作。 总之,...

    漂亮的jQuery黑色宽屏下拉导航菜单

    标题中的“漂亮的jQuery黑色宽屏下拉导航菜单”是指一种使用JavaScript库jQuery实现的网页导航菜单设计。这种菜单通常在宽屏显示器上...在实际项目中,还可以根据需求添加更多的定制功能,如分页加载、异步数据获取等。

    jQuery搜索框下拉菜单选择插件

    - 为了提高性能,可以考虑对大量数据进行分页加载,或者使用懒加载技术,只在用户滚动到相应位置时加载更多数据。 - 对于响应式设计,确保插件在不同屏幕尺寸和设备上都能正常工作。 总结来说,这款jQuery搜索框...

    带复选框的下拉菜单

    - 当下拉菜单选项过多时,可能需要分页或懒加载技术,避免一次性加载大量数据导致页面卡顿。 综上所述,实现“带复选框的下拉菜单”涉及前端的HTML、CSS和JavaScript,后端的Java以及可能用到的各种框架和库。...

    常用的19种下拉菜单

    在网页设计和开发中,下拉菜单是一种常见的交互元素,用于提供多个选择或导航选项。本文将详细解析标题“常用的19种下拉菜单”所涵盖的19种不同的下拉菜单样式,并探讨它们的设计原则、功能特点以及适用场景。 1. *...

    Js/css下拉菜单

    在网页设计中,下拉菜单是一种常见的交互元素,它能够有效地组织和展示大量的导航选项,同时保持页面的整洁。本文将深入探讨如何使用JavaScript(Js)和层叠样式表(CSS)来创建“Sony下拉菜单”,并借鉴Sony官方...

    jQuery输入框下拉选择菜单.zip

    总结,"jQuery输入框下拉选择菜单"插件通过jQuery的灵活性和强大的功能,实现了具有分页和键盘操作的下拉菜单。它不仅提升了用户体验,也为开发者提供了便利的工具,简化了复杂的数据交互和界面设计。在网页开发中,...

    强大的jquery下拉分页选择插件SelectPage

    2. **下拉功能**:允许用户展开一个下拉菜单,展示所有可选项,便于用户在大量数据中查找和选择。 3. **分页**:对于大量数据,SelectPage.js采用了分页策略,每一页只显示一定数量的选项,从而减轻用户一次性处理...

    安卓下拉上拉刷新相关-Android实现新闻分类(二级下拉菜单)效果.rar

    "Android实现新闻分类(二级下拉菜单)效果"这个项目涉及到的主要知识点包括: 1. **下拉刷新(Pull-to-Refresh)**: - 下拉刷新是Android应用中用来更新数据流的一种机制。当用户在顶部向下拉动列表时,会触发一个...

Global site tag (gtag.js) - Google Analytics