`

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快速指南

    最近做一个应用的时候用到了Jmesa(至于Jmesa的详细介绍,请Google),但是关于Struts2和Jmesa的资料特别少,费尽周折总算让他们两个正常运行了,现在把使用他们的一些心得写下来与大家分享

    jmesa的一个例子

    这是一个jmesa的例子 没有jar包 详情见 http://writeblog.csdn.net/PostList.aspx 初探jmesa

    jmesa-tag

    介绍ExtremeTable的下一代Jmesa,这个项目的目的是为开发者提供更有效的表格展现的API,而不是简单的TagLib。

    jmesa-3.0.jar

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

    jmesa-2.4.4.jar

    jmesa-2.4.4.jar 有源码

    jmesa2.3.4

    jmesa2.3.4非常好的API,推荐使用

    jmesa-snapshot.jar

    jmesa-snapshot.jar jmesa用到的jar

    jmesa所需完整jar包

    jmesa 所需要的 完整jar包,非常的全

    jmesa-3.0.4.jar

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

    jmesa核心讲解

    jmesa 。。。。。。。。。。。。。

    jmesa使用说明文档

    这是一篇关于如何使用jmessa的说明文档

    JMESA SERVLET

    使用jmesa做的分页,导出可以导出文txt,pdf,excel等格式,采用servlet 没有使用其他的框架,对还没有学会框架的比较好理解

    jmesa 排序 过滤 例子

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

    jmesa-ajax

    使 jmesa支持ajax的JS源码 描述&gt;=20个字符,不支持HTML标签。

    jmesa war source

    jmesa-2.3_examples.war-source.zipjmesa-2.3_examples.war-source.zipjmesa-2.3_examples.war-source.zip

    jmesa入门实例源码

    jmesa入门实例源码

    jmesa 入门

    NULL 博文链接:https://zengguo1988.iteye.com/blog/699798

    Struts1.2+Spring2.5+Hibernate3.2+Jmesa2.4.3+Jmesatag实例2分页A

    一个Struts1.2+Spring2.5+Hibernate3.2+Jmesa2.4.3+JmesaTag实现的强大分页控件例子 里 面有action实现分页和标签实现分页2个例子 action实现的分页 包括了表头排序,导出为PDF,TXT, excel等格式 jar包和数据库...

    jmesa-3.0.4.zip

    jmesa-3.0.4.zip,包含了jmesa所需要的.jar包和源代码,可以好好的研究一下

Global site tag (gtag.js) - Google Analytics