`
jiasudu1649
  • 浏览: 726874 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ofbiz 实现checkbox翻页选择

阅读更多
由于项目需要,我用ofbiz实现了这个话题,在这里与大家共享.
  ftl页面:
   1,定义三个Hidden变量:
  
引用
<body onload="initPage();">
<input type="hidden" id="checkedStr" value="${checkedStr?if_exists}">
<input type="hidden" id="noCheckedStr" value="${noCheckedStr?if_exists}">
<input type="hidden" id="allSelect" value="${allSelect?if_exists}">

   看到名字大家应该知道是做什么用的,在这里不多解释.
   2,javascript
  // 获取checkbox信息,选中,未选中,当前选中
            function getCheckBoxInformation() {
  var checkboxes = document.getElementsByName("subMemberId");
         
              var checkedStr = "";
              var noCheckedStr = "";
              for(i = 0; i < checkboxes.length; i++) {
                  var checkbox = checkboxes[i];
                  if(checkbox.checked) {
                      checkedStr = checkedStr + "," + checkbox.value;
                 }else {
                     noCheckedStr = noCheckedStr + "," + checkbox.value;
                 }
             }
      
  window.location.href='${action}
?VIEW_SIZE=${viewSize}&amp;VIEW_INDEX=${viewIndex-1}&amp;
hideFields=${parameters.hideFields?default("N")}${paramList}&amp;
checkedStr='+checkedStr+'&amp;noCheckedStr='+noCheckedStr+'&amp;allSelect='+allSelect.value;  
              }
        
           // 页面onload的时候计算当前页被选中项,并在页面表示
function initPage()
          {
                var allSelect = document.getElementById("allSelect");
                var all_selected = allSelect.value;
                var checkboxes = document.getElementsByName("subMemberId");
                if(all_selected != "" && all_selected!= null)
                {
                          var arrall_select = all_selected.split(",");
                      // alert(arrall_select.length);
                          if(arrall_select.length > 0)
                          {
                                   for(k = 0; k < arrall_select.length; k++)
                                   {
                                              for(i = 0; i < checkboxes.length; i++)
                                              {  var checkbox = checkboxes[i];
                                                    if((checkbox.value == arrall_select[k])==true) 
                                                    {
                                                             checkbox.checked = true; 
                                                    }  
                                              }
                                   }  
                         }  
                 } 
          }   
    每次翻页的时候调用getCheckBoxInformation()方法,页面加载的时候调用initPage()方法.
     3,后台Action操作,在每次执行时候调用下面的方法
private static String operationCheckInfo(DispatchContext ctx, Map context)
throws Exception {

Map result = new HashMap();
String allSelect;
//VIEW_INDEX,VIEW_SIZE判断是否是翻页操作
if (context.get("VIEW_INDEX") != null
&& context.get("VIEW_SIZE") != null) {
String all_select = (String) context.get("allSelect");
if (all_select == null || all_select.equals("")) {
all_select = "";
}
//获取当前选中的项目
String now_select = (String) context.get("checkedStr");
String[] all_now_select = null;
if (now_select != null || !now_select.equals("")) {
all_now_select = now_select.split(",");
}

//获取当前未选中项目
String no_select = (String) context.get("noCheckedStr");
String[] all_now_no_select = null;
if (now_select != null || !now_select.equals("")) {
all_now_no_select = no_select.split(",");
}

//将当前选中项目加入列表
for (int i = 1; i < all_now_select.length; i++) {
String strBoxSelected = all_now_select[i];
String strSearchWith = strBoxSelected + ",";
if (all_select.indexOf(strSearchWith) == -1) {
all_select = all_select + strSearchWith;
}
}
//将当前未选中项目从列表中删除
for (int i = 1; i < all_now_no_select.length; i++) {
String strBoxNoselected = all_now_no_select[i];
String strSearchWith = strBoxNoselected + ",";
int iSearchIndex = all_select.indexOf(strSearchWith);
if (iSearchIndex != -1) {
all_select = all_select.replaceAll(strSearchWith, "");
}
}

allSelect = all_select;
result.put("allSelect", all_select);
} else {

allSelect = "";
result.put("allSelect", "");
}

return allSelect;
}
     到现在为止,checkbox的翻页选中已经完成,最后说一句的是,这次仅仅完成了任务,性能方面还有很大的缺陷,大家如果有好的想法或者建议,请与我留言.谢谢!
分享到:
评论
1 楼 surpass_li 2013-05-03  
这个功能用mini 的 form可以实现吗

相关推荐

    ofbiz实现oracle平台小例子详解步骤及注意的问题.doc

    在本文中,我们将深入探讨如何在Oracle平台上实现OFBiz框架,并提供一个详细的小例子,以及在实施过程中需要注意的关键问题。OFBiz(Open For Business Project)是一个开源的企业应用框架,它包含了多种业务组件,...

    ofbiz开发入门之CmsBackEnd实现的CRUD

    本篇文章将探讨的是OFBiz的开发入门,特别是关于CmsBackEnd如何实现CRUD操作,即创建(Create)、读取(Retrieve)、更新(Update)和删除/Delete。 首先,理解OFBiz的基本架构至关重要。OFBiz采用Service Engine、Entity...

    ofbiz安装与配置

    我们可以在 Eclipse 的“Project Explorer”中右键点击,选择“Import”,然后选择“从 SVN 检出项目”,输入 Ofbiz 的 SVN 下载地址:http://svn.apache.org/repos/asf/ofbiz/branches/release12.04,然后按照提示...

    ofbiz开发手册

    OFBiz 环境搭建和安装需要注意的一些问题,例如,Java 的版本问题、数据库的选择问题、应用程序服务器的配置问题等。OFBiz 环境搭建和安装的正确性将直接影响到后续的开发和测试工作。 OFBiz 应用开发的注意事项 ...

    Ofbiz 数据库全模型

    Ofbiz,全称为The Open For Business Project,是一个开源的企业应用框架,主要由Apache软件基金会维护。这个项目旨在提供一套全面的、可扩展的企业级应用程序解决方案,涵盖了电子商务、供应链管理、客户关系管理等...

    ofbiz框架(文档)全

    4. **视图(View)**:OFBiz支持多种视图技术,包括JSP、FreeMarker、JPublish和Beanshell,可以根据需求选择合适的方式呈现数据。 通过这种MVC结构,OFBiz实现了高度解耦的组件设计,使得开发者能够独立地修改和...

    ofbiz10.04表结构

    标题中的"ofbiz10.04表结构"指的是OFBiz 10.04版本的数据模型设计,这是企业级开源应用框架OFBiz的一个重要组成部分。OFBiz全称为Open For Business Project,它是一个用于构建企业应用程序的全面业务解决方案,涵盖...

    ofbiz学习笔记(自学整理)

    Apache Ofbiz是一个开源的企业应用框架,它为构建复杂的业务应用程序提供了全面的功能,包括供应链管理、电子商务、财务会计、人力资源等。对于初学者来说,理解Ofbiz的基本架构和工作原理是至关重要的。 Ofbiz的...

    ofbiz api开发文档

    《OFBiz API 开发文档详解》 在信息技术领域,OFBiz(Open For ...总结,OFBiz API开发文档是开发者掌握OFBiz框架的必备资料,通过深入学习和实践,开发者可以充分利用OFBiz的强大功能,实现高效的企业级应用开发。

    ofbiz数据结构设计

    缓存策略包括本地缓存和分布式缓存,可根据业务场景选择合适的方案,以平衡系统响应速度和资源消耗。 六、数据分区与复制(Sharding & Replication) 对于大型企业系统,可能需要对数据进行分区和复制,以解决大...

    Ofbiz快速开发入门详解

    服务则负责处理业务逻辑,是Ofbiz实现功能的核心;而组件则将相关的实体和服务打包,形成了可重用的模块。 首先,书中会详细介绍如何安装和配置Ofbiz环境,包括下载Ofbiz源码、搭建开发环境、启动服务器等步骤。这...

    ofbiz git 服务搭建

    【OFBiz Git 服务搭建详解】 OFBiz是一个开源的企业级应用框架,主要用于构建和管理电子商务系统。本教程将详细介绍如何在本地环境中搭建OFBiz项目,并使用Git进行版本控制。 首先,确保你拥有以下基础环境: 1. ...

    关于OFBIZ的资料

    在提供的OFBIZ_Demo压缩包中,用户可以找到OfBiz的演示版本,这是一套预配置的环境,展示了OfBiz在实际业务场景下的功能和操作。这个演示通常包括以下部分: 1. **安装与配置**:压缩包可能包含了安装指南和配置...

    ofbiz开发入门总结

    2. 下载与安装:访问Ofbiz官方网站下载最新版本的Ofbiz源代码,解压到你选择的工作目录下。同时,安装一个集成开发环境(IDE),如Eclipse或IntelliJ IDEA,它们都有对应的Ofbiz插件,能提供更好的开发体验。 三、...

    OFBIZ开发指南 英文2

    服务引擎是OFBIZ的核心组件之一,它允许开发者定义服务接口,实现业务逻辑,并通过XML请求和响应进行通信。服务可以通过本地或远程调用,提供了强大的跨模块交互能力。 工作流引擎则管理各种任务和流程,如审批流程...

    Apache.OFBiz.Development

    根据给定的文件信息,以下是关于Apache OFBiz开发的知识点: 1. OFBiz介绍与安装:OFBiz是一个开源的企业自动化软件套件,它提供了构建企业应用程序所需的各种功能,比如电子商务、订单处理等。文件中提到了2008年...

Global site tag (gtag.js) - Google Analytics