`

jmesa之删除

阅读更多
在公司的项目中用到了EC/ET,后来说要重新移植一下该项目,于是在本人的鼓动下,决定使用jmesa来替代,由于jmesa的前身就是EC,所以用法也比较相似,再加上之前也花过一些时间用了一下,因此自己还是比较有信心的。但经过这一个多月的深入接触,发现jmesa还有许多地方需要改进,由于官方好像也只有一个人维护(而且也不积极),所以也不能指望官方来修护了。于是不得不花些时间去看看它的源码,还一些不满意的地方进行修改。总体来说,jmesa功能还是比较强大的,要玩得转它,就相当于学习一种新框架,由于问题比较多,时间也有限,因此先暂时写一下在jmesa中增加“删除”的功能。由于jmesa本身并没有提供删除的功能,于是需要手动的操作来完成,显示部分的代码如下:

<jmesa:htmlColumn title="操作" editable="false" filterable="false" sortable="false">
<a href="javascript:void(0);" onclick="deleteUser('user_table1','${bean.id}');">删除</a></jmesa:htmlColumn>


之所以要这么做而不是直接用URL来实现删除,是因为删除时应当保留当前的页数,如在第二页删除了一条记录,那么删除以后也应该回到第二页才对,要实现此功能,需要用到jmesa的分页功能,而这些参数的获取及赋值也需通过JS来实现,因此这样做似乎更合理一些。在JS部分,可以这样:

<script type="text/javascript">
            function onInvokeAction(id) {
                $.jmesa.setExportToLimit(id, '');
                $.jmesa.createHiddenInputFieldsForLimitAndSubmit(id);
            }
            function onInvokeExportAction(id) {
                var parameterString = $.jmesa.createParameterStringForLimit(id);
                location.href = '${pageContext.request.contextPath}/user/user.mvc?method=showUsers&id=user_table2&' + parameterString;
            }
            function deleteUser(tableid,id){
        		deleteWithLimitInfoForJSP("${pageContext.request.contextPath}/user/user.mvc",tableid,id);
        	}
        </script>


上面就加了一个deleteUser方法,然后在相应的jmesa.js加入以下代码:

function createParameterStringForLimit(id) {
    return jQuery.jmesa.createParameterStringForLimit(id);
}

function deleteWithLimitInfoForJSP(deleteurl,tableid,id){
    var currentpage=jQuery.jmesa.getLimitPage(tableid);
    jQuery.jmesa.setPageToLimit(tableid,currentpage);
    jQuery.ajax({
    	  type: "get",
    	  url: deleteurl,
    	  data: "method=ajaxDelete&id="+id,
    	  success: function(msg) {
    		alert("删除成功!");
    		createHiddenInputFieldsForLimitAndSubmit(tableid);
    	  }
    });
}

/*********** Filter ***********/
....

即添加了deleteWithLimitInfoForJSP方法,通过其前后的代码,也能知道该段代码该放在什么地方,此代码就是执行删除操作的代码,通过调用jquery的AJAX操作来实现,然后调用控制器的ajaxaDelete方法实现删除,这个方法还用到了一个getLimitPage方法,这个方法的代码放在jquery.jmesa.js中:

onInvokeExportAction : function (id) {
            var tableFacade = this.getTableFacade(id);
            var f = window[tableFacade.onInvokeExportAction];
            if ($.isFunction(f) !== true) {
                throw tableFacade.onInvokeExportAction + ' is not a global function!';
            } else {
                f(id);
            }
        },
        getLimitPage : function(tableid,id) {
            var limit = this.getTableFacade(tableid).limit;
            return limit.page;
        }
    };

    /*********** Objects and Prototype Functions ***********/
.

之所以把前后的代码放出来,是为了确定其放的位置,这些代码其实是参照了网上的实现,只是那篇博客讲得并不完整,所以故重新把它整理写了下来,这样一个基本的删除操作就算完成了。
关于jmesa的问题还有很多,以后有空再把其它的写下来。
分享到:
评论
1 楼 banchun 2010-06-07  
为什么我用jmesa的删除功能写了一个
getLimitPage
函数,用firebug调试怎么老报getLimitPage不是函数呢

相关推荐

    jmesa.jar jmesa.jar

    jmesa.jar jmesa.jar

    jmesa-tag

    **标题:“Jmesa-Tags”** 在Java Web开发领域,`Jmesa`是一个针对`ExtremeTable`的下一代项目,旨在提供一个更为强大的表格展示API。与传统的TagLib(标签库)相比,Jmesa的目标是为开发者创造更加高效且功能丰富...

    jmesa使用说明文档

    **JMESA 概述** JMESA 是一个基于 Java 开发的 Html 表格组件,源自 ExtremeTable 项目,主要用于在 Web 应用中展示、过滤、排序和分页数据,并支持数据导出功能。它非常灵活,允许开发者根据具体需求进行定制。...

    jmesa的一个例子

    **Jmesa简介** Jmesa,全称为Java Middleware for Extracting and Analyzing Streams,是一个开源的Java中间件,主要用于处理和分析数据流。它提供了一种高效、灵活的方式来处理实时和近实时的数据流,使得开发者...

    Jmesa快速指南

    《Jmesa在Struts2环境中的应用实践》 Jmesa是一款强大的Java表格和分页处理库,尤其适用于Web应用程序。在Struts2框架下集成Jmesa,可以为用户提供直观、高效的数据显示和操作功能。然而,由于相关文档较少,使得在...

    jmesa2.3.4

    《深入解析jmesa2.3.4:一个不可或缺的API工具》 jmesa2.3.4,作为一款备受推崇的API,其在IT领域中的应用广泛且深受好评。这款工具以其卓越的性能和易用性,为开发者提供了一种高效的数据处理和分析解决方案。本文...

    jmesa 入门

    **JMESa 入门详解** JMESa(Java Message Expression Language for SQL Access)是一种用于在Java应用程序中查询和操作数据库的开源工具。它提供了一种简洁、强大的方式来表达SQL查询,使得开发者可以更方便地与...

    jmesa核心讲解

    **JMESA核心讲解** JMESA,全称为Java Message Expert for SQL Access,是一个开源的Java库,专门用于处理和分析SQL数据库中的数据。它提供了一种高效且灵活的方式来访问和操作存储在关系型数据库中的大量信息。在...

    jmesa所需完整jar包

    JMESA,全称Java Medical Image Analysis,是一个用于医学图像分析和处理的开源库。它提供了丰富的功能,包括图像显示、处理、分析以及与多种数据格式的交互。这个压缩包包含的是JMESA所需的全部jar包,确保了你在...

    jmesa-3.0.jar

    jmesa表格标签 依赖包 jmesa-3.0.jar

    jmesa-2.4.4.jar

    jmesa-2.4.4.jar 有源码

    jmesa war source

    【标题】"jmesa war source" 指的是一个与JMESa相关的WAR源码包,这个包包含了JMESa的2.3版本示例应用的源代码。 【描述】"jmesa-2.3_examples.war-source.zip" 重复三次,暗示这个压缩文件是关于JMESa 2.3版本的...

    jmesa-snapshot.jar

    jmesa-snapshot.jar jmesa用到的jar

    JMESA SERVLET

    ** JMESA SERVLET ** JMESA(Java Model for Export and SpreadSheet Analysis)是一个用于数据导出和电子表格分析的Java库。它提供了一种简单的方法来生成各种格式的文件,如TXT、PDF和Excel,这在Web应用程序中...

    jmesa-ajax

    《JMESA与AJAX集成实现详解》 在现代Web应用程序中,实时数据交互和页面无刷新更新已经成为提升用户体验的关键因素。为此,开发者们广泛利用AJAX(Asynchronous JavaScript and XML)技术,它允许在不重新加载整个...

    jmesa-3.0.4.jar

    jmesa-3.0.4 最新版 供大家学习下载

    Jmesa示例[分页,排序,导出CSV,EXCEL,PDF]

    "Jmesa示例[分页,排序,导出CSV,EXCEL,PDF]" 这个标题提到了几个关键功能点,它们是Jmesa库在实际应用中的常见操作: 1. **分页**:这是在处理大量数据时非常重要的功能,允许用户按指定数量的数据分批次加载和显示...

    jmesa入门实例源码

    **JMESA(Java Multidimensional Expression Set API)** 是一个强大的开源库,主要用于处理多维数据,如数组、矩阵和立方体。它为Java开发者提供了处理和分析大量结构化数据的能力,尤其在科学计算、统计分析和大...

    jmesa 排序 过滤 例子

    官方提供的另外一种方法的实现。 有排序和过滤。 而且能支持大数据量的查询。

    jmesa-3.0.4.zip

    **JMESa 3.0.4:一个实用的分页控件** JMESa,全称为Java Middle Eastern Server Adapter,是一款专为Java开发者设计的高效、易用的分页控件。它在3.0.4版本中提供了丰富的功能和优化,旨在提升开发者的编程体验,...

Global site tag (gtag.js) - Google Analytics