电子商务系统的设计与实现(十):DWZ框架与第三方分页组件整合
晚上,就是刚刚,在后端管理系统中使用DWZ框架。
先是,直接使用官网网站的Demo,dwz-jui,与编程语言无关的纯静态的那个原始项目。
很快就搭建好了左侧菜单,打开菜单后,出现Tab页面,然后显示目标页面的内容。
然后,就去关注表格分页部分。
DWZ自带的分页组件,感觉太麻烦了,一方面分页分成了4个部分显示,主要包括:
pagerForm,查询条件
pagerHeader,分页表格的头部
pagerContent,分页表格的正文
panleBar,分页条数栏目。
另一方面,分页html和JS中,需要显示后端的变量。
表格正文的list集合和分页参数都需要从后端,比如Java上下文变量中获取。见下面的例子:
<form id="pagerForm" method="post" action="demo_page1.html">
<input type="hidden" name="status" value="${param.status}">
<input type="hidden" name="keywords" value="${param.keywords}" />
<input type="hidden" name="pageNum" value="1" />
<input type="hidden" name="numPerPage" value="${model.numPerPage}" />
<input type="hidden" name="orderField" value="${param.orderField}" />
</form> <div class="pageHeader">
<form onsubmit="return navTabSearch(this);" action="demo_page1.html" method="post">
<div class="searchBar">
<table class="searchContent">
<tr>
<td>
我的客户:<input type="text" name="keyword" />
</td>
<td>
<select class="combox" name="province">
<option value="">所有省市</option>
</select>
</td>
<td>
建档日期:<input type="text" class="date" readonly="true" />
</td>
</tr>
</table>
<div class="subBar">
<ul>
<li><div class="buttonActive"><div class="buttonContent"><button type="submit">检索</button></div></div></li>
</ul>
</div>
</div>
</form>
</div>
<div class="pageContent">
<div class="panelBar">
<ul class="toolBar">
<li><a class="add" href="demo_page4.html" target="navTab"><span>添加</span></a></li>
</ul>
</div>
<table class="table" width="100%" layoutH="138">
<thead>
<tr>
<th width="120">客户名称</th>
</tr>
</thead>
<tbody>
<tr target="sid_user" rel="1">
<td>天津农信社</td>
</tr> </tbody>
</table>
<div class="panelBar">
<div class="pages">
<span>显示</span>
<select class="combox" name="numPerPage" onchange="navTabPageBreak({numPerPage:this.value})">
<option value="20">20</option>
</select>
<span>条,共${totalCount}条</span>
</div>
<div class="pagination" targetType="navTab" totalCount="200" numPerPage="20" pageNumShown="10" currentPage="1"></div>
</div>
</div>
因此,我不太想使用这个自带的分页。
以前,秒针某个同事写了分页组件,我改造了下,想今后自己维护一个版本。于是,在后端使用的是自己的分页组件fugrid.js。
但是,遇到了一个问题。 要么是,自己的grid组件报错,要么是dwz的dwz.ui.js的initUI函数报错。
分析问题:
单独在新页面中,访问grid组件所在的页面,可以正常显示,说明代码是没有问题的。
使用自带的table,initUI函数也没有报错。
继续分析:
发现initUI方法会调用一些方法,$("div.panel", $p).jPanel();然后提示某某没有jPanel方法,最终导致grid组件卡死了。grid组件的代码,我不想修改,dwz组件的代码,还没有看懂,也不想修改,修改了今后升级就麻烦一些。
我尝试了一种办法,既然是由于dwz报错导致grid组件一直卡死,如果捕获这个错误了?
try{
initUI();
}catch(e){
console.warn(e);
}
加上try-catch块,还是报错。难道是缓存?
<script src="static/framework/dwzjs/dwz.ui.js?a=1" type="text/javascript"></script>
加上一个a参数,防止缓存,发现还是报错。
换种方式:
function initUI(_box){
var $p = $(_box || document);
try {
$("div.panel", $p).jPanel();
}catch(e){
console.warn(e);
}
}
在initUI方法内部,捕获这个异常,终于OK啦。
不需要修改dwz的业务逻辑,不需要改动grid组件的代码。
如果dwz升级了,只需要升级之后,再增加捕获异常的代码就行了,不用去关心dwz组件的逻辑。
电子商务系统的设计与实现(十):DWZ框架与第三方分页组件整合的更多相关文章
- 电子商务系统的设计与实现(七):前后端系统UI设计的一些思考
对于大部分开发者来说,写界面是最烦人的事.我想,开发者最初诞生,以及我们在大学学习的时候,更加侧重的是程序设计和逻辑思维,而不是界面.界面更象是艺术,艺术和程序设计是两回事. 我个人还是想成为全栈式开 ...
- 电子商务系统的设计与实现(十三):分页组件,从前到后,从JS到Java
一.概述 学习实践Web开发5年多了,直到今天,我才算真正实现了最基本最常用的分页组件. 包括: a.前端JS异步加载并渲染: b.前端JSP.Freemarker.Struts标签渲 ...
- B2C电子商务系统研发——商品SKU分析和设计(二)
转:http://www.cnblogs.com/winstonyan/archive/2012/01/07/2315886.html 上文谈到5种商品SKU设计模式,本文将做些细化说明. 笔者研究过 ...
- B2C电子商务系统研发——商品SKU分析和设计(一)
一.SKU及相关概念定义 在设计商品SKU之前,首先让我们熟悉一下SKU和相关的一些概念. # 什么是SKU: SKU=Stock Keeping Unit(库存量单位) 同一型号的商品,或者说是同一 ...
- 转: 透过CAT,来看分布式实时监控系统的设计与实现
评注: 开源的分布式监控系统 转:http://www.infoq.com/cn/articles/distributed-real-time-monitoring-and-control-syste ...
- ASP.NET之电子商务系统开发-4(二级分类)
一.前言 继上次的订单,这是第四篇.记录一下分类和筛选.这功能是最后做的,因为我完全不懂其原理.后来通过同学的指导(一位很有天赋的同学,比我牛逼一个层次,同样是高三.:D),终于也是完成了.在写这篇博 ...
- 基于Mvc3,Ef,领域驱动电子商务系统的EShop开发
分享自己从代码小工一步步走向搭架子,ING... 简单了解UnitOfWork 摘要: UnitOfWorkUnit Of Work模式,即工作单元,它是一种数据访问模式.它是用来维护一个由已经被业务 ...
- 高性能、高可用、高扩展ERP系统架构设计
ERP之痛 曾几何时,我混迹于电商.珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP).作为一个ERP系统,系统主要功能模块无非是订单管理.商品管理.生产采购.仓库管理.物流管理.财务管理等 ...
- 分布式、服务化的ERP系统架构设计
ERP之痛 曾几何时,我混迹于电商.珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP).作为一个ERP系统,系统主要功能模块无非是订单管理.商品管理.生产采购.仓库管理.物流管理.财务管理等 ...
随机推荐
- h5背景
1.背景属性复习: background-image background-color background-repeat background-position background-attachm ...
- [Android 性能优化系列]内存之提升篇--应用应该怎样管理内存
大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 原文地 ...
- 硬件——nrf51822第三篇,按键控制小灯
现象是按键按下,小灯亮,按键抬起,小灯灭. 从这一节我们细致剖析gpio口的设置: nrf51822片上一共有32个数字引脚,分为4个port,如下: port 0 pin 0-7 port 1 pi ...
- python 字符串大小写转换(不能使用swapcase()方法)
python 3字符串大小写转换 要求不能使用swapcase()方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wa ...
- promis:异步编程
promise对象用于延迟计算和异步计算:一个promise对象代表着一个还未完成,但预期将来完成的操作 Image.png Image.png 打印结果如下: <!DOCTYPE html&g ...
- C++卷积神经网络实例:tiny_cnn代码具体解释(8)——partial_connected_layer层结构类分析(上)
在之前的博文中我们已经将顶层的网络结构都介绍完毕,包括卷积层.下採样层.全连接层,在这篇博文中主要有两个任务.一是总体贯通一下卷积神经网络在对图像进行卷积处理的整个流程,二是继续我们的类分析.这次须要 ...
- Spring Boot + Jersey
Jersey是一个很好的Java REST API库.当你用Jersey实现REST的时候.是很自然的.同一时候Spring Boot是Java世界中还有一个很好的工具.它降低了程序的应用配置(< ...
- WebApi自定义返回类型和命名空间实现
1.自定义ContentNegotiator /// <summary> /// 返回json的ContentNegotiator /// </summary> public ...
- Static关键字深入理解
1.static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量. 两者的区别是: 对于静态变量在 ...
- (转)Nginx在RedHat中系统服务配置脚本
转自:http://binyan17.iteye.com/blog/1688308 以下代码是在前人的基础上,结合自己服务器实际情况修改的,本人服务器环境是:CentOS 6.31.创建启动脚本, ...