`
stworthy
  • 浏览: 525669 次
  • 来自: ...
社区版块
存档分类
最新评论

jquery-easyui编写用户管理小例子

阅读更多

利用easyui编写一个用户管理小例子,目的是演示CRUD操作。先看一下效果图:


1、表格的定义:

	<table id="user-table">
		<thead>
			<tr>
				<th field="name" width="100">名称</th>
				<th field="phone" width="100">电话</th>
				<th field="addr" width="100">地址</th>
				<th field="duty" width="100">职务</th>
			</tr>
		</thead>
	</table>

利用表格的THEAD来定义列,field属性对应用户数据模型的字段名称。

接着用jQuery创建表格,同时创建一个操作工具栏:

	grid = $('#user-table').datagrid({
		url:'/demo1/user/getUsers',
		title:'用户资料',
		width:600,
		height:300,
		singleSelect:true,
		toolbar:[{
			text:'新增',
			iconCls:'icon-add',
			handler:newUser
		},'-',{
			text:'修改',
			iconCls:'icon-edit',
			handler:editUser
		},'-',{
			text:'删除',
			iconCls:'icon-remove'
		}]
	});
 

2、定义用户信息窗口和表单

	<div id="user-window" title="用户窗口" style="width:400px;height:250px;">
		<div style="padding:20px 20px 40px 80px;">
			<form method="post">
				<table>
					<tr>
						<td>名称:</td>
						<td><input name="name"></input></td>
					</tr>
					<tr>
						<td>电话:</td>
						<td><input name="phone"></input></td>
					</tr>
					<tr>
						<td>地址:</td>
						<td><input name="addr"></input></td>
					</tr>
					<tr>
						<td>职务:</td>
						<td><input name="duty"></input></td>
					</tr>
				</table>
			</form>
		</div>
		<div style="text-align:center;padding:5px;">
			<a href="javascript:void(0)" onclick="saveUser()" id="btn-save" icon="icon-save">保存</a>
			<a href="javascript:void(0)" onclick="closeWindow()" id="btn-cancel" icon="icon-cancel">取消</a>
		</div>
	</div>

可以看到,窗口是一个DIV,表单是一个FORM,这种创建方式具有极大的灵活性,不需要学习成本,创建的jQuery代码如下:

	$('#btn-save,#btn-cancel').linkbutton();
	win = $('#user-window').window({
		closed:true
	});
	form = win.find('form');

其中建立了窗口的操作按钮,并获取表单对象。

 

3、进行CRUD操作的客户端代码:

function newUser(){
	win.window('open');
	form.form('clear');
	form.url = '/demo1/user/save';
}
function editUser(){
	var row = grid.datagrid('getSelected');
	if (row){
		win.window('open');
		form.form('load', '/demo1/user/getUser/'+row.id);
		form.url = '/demo1/user/update/'+row.id;
	} else {
		$.messager.show({
			title:'警告', 
			msg:'请先选择用户资料。'
		});
	}
}
function saveUser(){
	form.form('submit', {
		url:form.url,
		success:function(data){
			eval('data='+data);
			if (data.success){
				grid.datagrid('reload');
				win.window('close');
			} else {
				$.messager.alert('错误',data.msg,'error');
			}
		}
	});
}
function closeWindow(){
	win.window('close');
}
 

 

例子中使用etmvc框架来处理后台的数据,演示例子中不使用数据库。

定义用户数据模型:

public class User {
	public Integer id;
	public String name;
	public String phone;
	public String addr;
	public String duty;
	
	public User clone(){
		User u = new User();
		u.id = id;
		u.name = name;
		u.phone = phone;
		u.addr = addr;
		u.duty = duty;
		return u;
	}
}

定义后台用户的CRUD操作:

public class UserController extends ApplicationController{
	/**
	 * 返回全部用户资料
	 */
	public View getUsers() throws Exception{
		Map<String,Object> result = new HashMap<String,Object>();
		result.put("total", users.size());
		result.put("rows", users);
		
		return new JsonView(result);
	}
	
	/**
	 * 取得指定的用户资料
	 */
	public View getUser(Integer id) throws Exception{
		User user = users.get(id-1);
		return new JsonView(user);
	}
	
	/**
	 * 保存用户资料,这里对用户名称进行非空检验,仅供演示用
	 */
	public View save(User user) throws Exception{
		Map<String,Object> result = new HashMap<String,Object>();
		if (user.name.length() == 0){
			result.put("failure", true);
			result.put("msg", "用户名称必须填写。");
		} else {
			result.put("success", true);
			user.id = users.size()+1;
			users.add(user);
		}
		View view = new JsonView(result);
		view.setContentType("text/html;charset=utf-8");
		return view;
	}
	
	/**
	 * 更新指定的用户资料
	 */
	public View update(Integer id) throws Exception{
		Map<String,Object> result = new HashMap<String,Object>();
		User user = users.get(id-1).clone();
		updateModel(user);
		if (user.name.length() == 0){
			result.put("failure", true);
			result.put("msg", "用户名称必须填写。");
		} else {
			result.put("success", true);
			user.id = id;
			users.set(id-1, user);
		}
		View view = new JsonView(result);
		view.setContentType("text/html;charset=utf-8");
		return view;
	}
	
	// 用户资料测试数据
	private static List<User> users = new ArrayList<User>();
	static{
		for(int i=1; i<10; i++){
			User user = new User();
			user.id = i;
			user.name = "name" + i;
			user.phone = "phone" + i;
			user.addr = "addr" + i;
			user.duty = "duty" + i;
			
			users.add(user);
		}
	}
}

 

完整的代码请见附件,可以看到,easyui具有极少的JS代码。

 

  • 大小: 17.1 KB
分享到:
评论
39 楼 newposte 2012-05-08  
请问楼主:jquery easyui 中怎么使用复选框啊?比如说:给某个用户分配角色的时候,角色信息往往用checkbox来实现,而用jquery easyui怎么实现?
38 楼 wwjjkk 2011-07-04  
附件里view文件夹是空的啊,木有页面哦
37 楼 土豆o 2010-12-20  
像这种表单,我用djfocus一分钟不到就可以做出来。
36 楼 zhsjie 2010-08-12  
我觉得对于button还有改进的余地(实现返回后自动刷新),看看我可否实现
35 楼 arong 2010-06-14  
最近参考搂主的例子收获不小,又碰到一个疑问,如在编辑时,form(load)填充表单时,如果表单有域的属性为关联对象的,名称如:<html:text property="productType.prodType"/>无法自动填充。我生成的JSON如: {"createtime":"2008-07-13","id":8,"model":"LC-17H2 06","productType":{"id":1,"prodType":"车载显示器"}}。对象关系如产品类别和产品:ProductType,Product。mvc用的是struts1.
34 楼 stworthy 2010-06-10  
删除时获取选中行的ID,AJAX到后台进行删除,然后刷新表格数据。
33 楼 arong 2010-06-09  
请问搂主,删除事件如何提交?
32 楼 madbird 2010-03-26  
非常感谢分享~~~
31 楼 stworthy 2010-03-12  
不需要,同etmvc没任何关系。
30 楼 winter8 2010-03-11  
楼主,一个问题困惑我好久了,是不是jquery easyui必须与etmvc框架一起用,如果我要用其它框架行不行?
29 楼 mx122723 2010-03-09  
很好用吗??
28 楼 stworthy 2010-03-08  
这个是AJAX的缓存,可以加上这一句来防止:
$.ajaxSetup ({
    cache: false //关闭AJAX相应的缓存
});
27 楼 andybrier3 2010-03-08  
报告一个bug:
用户管理小例子demo1有个bug:修改用户的一个属性之后(比如说职务),刷新页面,表格上的内容变了,但是点击刚刚修改的数据,选择修改,form中还是显示修改前的数据。
26 楼 congpeixue 2010-03-04  
congpeixue 写道
我用在自己的小项目中了,, 下次拷贝些图上来,, 谢谢stworthy


决定不再使用了。 不开源。
25 楼 sogo1986 2010-02-26  
有rails的意思,配置几乎是0,非常好 支持LZ
希望多集成spring,如果能加上freemarker做渲染或者代码生成器就完美了
24 楼 congpeixue 2010-02-08  
我用在自己的小项目中了,, 下次拷贝些图上来,, 谢谢stworthy
23 楼 stworthy 2010-02-05  
新范例已经更新发布。
22 楼 fege 2010-02-05  
该demo的jquery.easyui.min.js应用到 机电设备管理系统 首页面出错了,报jquery.easyui.min.js的错误,求有什么版本的jquery.easyui.min.js能兼容这两个demo。
21 楼 j9dai 2010-02-04  
看起来不错
但怎么编译布署啊
我的环境是jdk6+eclipse3.2+myeclipse6.5+jboss4.2
导入项目报错:
Target runtime Apache Tomcat v6.0 is not defined.
怎么解决啊?
是不是一定要装Tomcat v6.0啊
20 楼 vinsonlou 2010-01-29  
翻页在ie下面有点慢

相关推荐

    jQuery-Easyui写的一个后台框架

    在描述中提到“很漂亮”,这可能是指jQuery EasyUI提供的默认主题和组件设计风格,它们通常具有专业的外观和用户体验,可以为后台管理系统增添现代化和专业感,无需开发者过多关注界面设计细节。 使用jQuery EasyUI...

    jQuery-Easyui多成树导航菜单DEMO

    jQuery EasyUI 是一个基于 jQuery 的前端框架,它提供了一系列易于使用的组件,如对话框、表格、树形控件等,帮助开发者快速构建用户界面。在本案例中,我们讨论的是如何利用 jQuery EasyUI 实现一个多级树导航菜单...

    jquery_easyUI项目(毕业设计)

    在“jQuery EasyUI 项目(毕业设计)”中,我们可以看到一个实际应用的例子,它是用 EasyUI 构建的一个客户关系管理(CRM)系统,名为“ZhangZhuCRM”。这个项目展示了如何将 EasyUI 的组件整合到实际业务场景中,为...

    jQuery EasyUI 1.3.3 源码

    jQuery EasyUI 1.3.3 是一个基于 jQuery 的轻量级前端开发框架,它提供了丰富的用户界面组件,如对话框、表格、菜单、表单等,极大地简化了Web应用程序的开发工作。这个源码包包含了未混淆的代码,使得开发者能够...

    JQuery EasyUI学习例子

    **jQuery EasyUI学习例子** jQuery EasyUI 是一个基于 jQuery 的前端框架,它提供了一系列轻量级、易于使用的组件,帮助开发者快速构建具有专业界面的Web应用。在这个"JQuery EasyUI学习例子"中,我们将深入探讨...

    easyUI例子_easyui1.4.4_一套EASYUI的经典后台管理模板_jquery_

    EasyUI 是一个基于 jQuery 的前端框架,主要用于快速构建用户界面,尤其适用于后台管理系统。这个"easyUI例子_easyui1.4.4"压缩包提供了一套使用 EasyUI 1.4.4 版本的经典后台管理模板,适用于开发人员快速搭建功能...

    spring3 mvc + mybatis + jquery easyui例子

    本项目实例——"spring3 mvc + mybatis + jquery easyui例子",就是这样一个典型的案例,它利用Spring3 MVC作为后端MVC框架,MyBatis作为持久层解决方案,jQuery EasyUI作为前端界面库,共同打造了一个基础的用户、...

    Springmvc+MyBatis+JQueryEasyUI

    在提供的资源包中,可能包含了一个已经配置好并可以运行的示例项目,包括数据库脚本、Spring MVC的配置文件、MyBatis的Mapper和实体类、以及使用JQueryEasyUI编写的前端页面。这样的例子可以帮助初学者快速理解这三...

    easyui datagird增删改分页例子

    描述中提到 "struts1.3+spring2+Hibernate json,easyui datagird 学习easyui 做的一个小例子" 指出这个项目是使用Struts1.3作为MVC框架,Spring2处理依赖注入和事务管理,Hibernate作为ORM框架来操作数据库,而JSON...

    easyui增删改很好的例子

    EasyUI 是一个基于 jQuery 的轻量级前端框架,它提供了丰富的组件和易于使用的API,用于构建数据驱动的Web应用。这个“easyui增删改很好的例子”是一个实用的学习资源,展示了如何利用EasyUI来实现数据的添加、删除...

    jQuery EasyUI 1.5.1 中文API文档 帮助手册 chm pdf demo

    jQuery EasyUI 是一个基于 jQuery 的前端框架,它简化了网页开发,提供了丰富的用户界面组件,如数据网格、下拉树、对话框等。版本 1.5.1 是该框架的一个稳定版本,提供了多样的增强功能和改进。中文API文档是开发者...

    jquery弹出框 提示框实例

    在JavaScript的世界里...总的来说,jQuery和jQuery EasyUI为开发人员提供了强大的工具来创建具有高度定制性和用户体验的弹出框和提示框。通过学习和实践这些实例,你可以提升网页的交互性和专业性,更好地服务于用户。

    jquery easyUI 全方面例子与文档

    **jQuery EasyUI 知识点详解** jQuery EasyUI 是一个基于 jQuery 的轻量级前端框架,它提供了一系列的 UI 组件,使得开发者可以快速构建出美观且功能丰富的 Web 应用程序。EasyUI 提供了诸如窗口、表格、下拉菜单、...

    jQuery EasyUI 1.3 中文帮助手册

    jQuery EasyUI 是一款基于 jQuery 的前端开发框架,它简化了网页UI组件的开发,使得开发者可以快速构建用户界面。这个1.3版本的中文帮助手册是开发者的重要参考资料,旨在提供全面、详细的API文档和使用教程。 ...

    jquery easyui 结合jsp简单展现table数据示例

    在这个例子中,我们主要使用了jQuery EasyUI中的`easyui-datagrid`组件。该组件允许我们将数据以表格的形式展示在网页上,并且支持分页、排序、过滤等高级功能。 接下来的知识点是JSP页面的编写。JSP(JavaServer ...

    结合easyui的用户验证

    在IT行业中,前端开发是构建用户界面的关键环节,而EasyUI和jQuery是两个非常流行的JavaScript库,它们大大简化了Web应用程序的开发。本教程将深入探讨如何结合EasyUI实现用户验证,以及如何扩展jQuery控件验证功能...

    最新jquery easyui Demo

    在jQuery的基础上,EasyUI进一步提供了诸如对话框、表格、表单、菜单、按钮等常见的UI组件,使得开发者无需从零开始编写复杂的CSS和JavaScript代码,即可快速实现复杂的界面布局和交互。 在《最新jQuery EasyUI ...

    easyui-例子

    这个“easyui-例子”压缩包中的jQueryEasyUI文件夹很可能包含了一系列示例HTML文件,演示了如何使用EasyUI的各种组件和功能。通过查看和运行这些例子,学习者可以直观地了解每个组件的工作方式以及如何在实际项目中...

    Jquery easyUI帮助

    通过使用JQuery EasyUI,开发人员可以减少JavaScript代码的编写量,而是通过简单的HTML标记来定义用户界面。这使得开发工作变得更加轻松高效。 #### 二、核心特点与优势 - **易用性**:JQuery EasyUI非常易于使用,...

    easyui demo

    它提供了一系列预定义的CSS样式、JavaScript组件和jQuery插件,使得开发者能够便捷地构建出美观且响应式的用户界面。"easyui demo"是这个压缩包的主题,其中包含了一个相对完整的EasyUI示例集,旨在帮助开发者更好地...

Global site tag (gtag.js) - Google Analytics