使用Jquery+EasyUI 进行框架项目开发案例讲解之二用户管理源码分享
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍作者:字体:[增加减小] 类型:转载初识Jquery EasyUI看了一些博主用其开发出来的项目,页面很炫,感觉功能挺强大,效果也挺不错,最近一直想系统学习一套前台控件,于是在网上找了一些参考示例初识Jquery EasyUI看了一些博主用其开发出来的项目,页面很炫,感觉功能挺强大,效果也挺不错,最近一直想系统学习一套前台控件,于是在网上找了一些参考示例。
写了一些基本的增删改查功能,算是对该控件的基本入门。
后续有时间继续深入学习。
在学习jquery easyui前应该先到官网下载最新版本/download/index.php先看一下运行后的页面1、列表展示2、新增页面3、修改页面把jquery easyui下载好之后,一般引用下页几个文件复制代码代码如下:<link href="/Resources/easyui/css/default.css" rel="stylesheet" type="text/css" /><linkhref="/Resources/easyui/js/themes/default/easyu i.css" rel="stylesheet"type="text/css" />//页面图标样式<linkhref="/Resources/easyui/js/themes/icon.css"rel="stylesheet" type="text/css" /><scriptsrc="/Resources/easyui/js/jquery-1.7.2.min.js" type="text/javascript"></script>//jquery easyui主要的js<scriptsrc="/Resources/easyui/js/jquery.easyui.min.js" type="text/javascript"></script>首先是列表展示数据复制代码代码如下:<table id="dg" title="My Users" class="easyui-datagrid" style="width: 700px; height: 250px"url="/GetJson/CreateJson.aspx"toolbar="#toolbar" pagination="true" rownumbers="true"fitcolumns="true" singleselect="true"><thead><tr><th field="AccountCode" width="50">编号</th><th field="AccountName" width="50">卡名</th><th field="AccountPwd" width="50">密码</th><th field="CreateTime" width="50">创建时间</th><th field="CreateName" width="50">创建人</th></tr></thead></table>jquery easyui是用datagrid对数据进行展示的,所以class要选择easyui-datagrid;url是本列表的一个json格式的数据来源toobar后面跟着的"#toobar"是列表的一个工具栏,本示例在列表上显示的是添加,修改,删除功能按钮对数据进行操作。
免费(jQuery Easyui)教程
目录1Accordion(可折叠标签) (4)1.1实例 (4)1.2参数 (5)2DateBox(日期框) (5)2.1实例 (5)2.2参数 (8)2.3事件 (8)2.4方法 (8)3ComboBox(组合框) (8)3.1实例 (8)3.2参数 (10)3.3事件 (11)3.4方法 (11)4Dialog(对话框) (11)4.1实例 (11)4.2参数 (13)4.3事件 (14)4.4方法 (14)5Messager(提示框) (14)5.1实例 (14)5.2方法 (17)5.3扩展 (18)6NumberBox(数字框) (18)6.1实例 (18)6.2参数 (19)7ValidateBox(验证框) (19)7.1实例 (19)7.2参数 (21)7.3方法 (21)7.4扩展 (21)8Pagination(分页) (22)8.1实例 (22)8.2参数 (23)8.3事件 (24)9Window(窗口) (24)9.1实例 (24)9.2参数 (27)9.3事件 (27)9.4方法 (27)10Panel(面板) (27)10.1实例 (27)10.2参数 (29)10.3事件 (30)10.4方法 (30)11Tabs(标签) (31)11.1实例 (31)11.2参数 (33)11.3事件 (33)11.4方法 (34)11.5标签面板属性 (34)12Tree(树) (34)12.1实例 (34)12.2参数 (37)12.3事件 (38)12.4方法 (38)13Layout(布局) (39)13.1实例 (39)13.2参数 (40)13.3方法 (40)14Datagrid(数据表) (40)14.1实例 (41)14.2参数 (44)14.3Column参数 (45)14.4事件 (46)14.5方法 (47)1Accordion(可折叠标签)1.1实例1.1.1代码<html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>jQuery EasyUI</title><link rel="stylesheet"type="text/css"href="../themes/default/easyui.css"><link rel="stylesheet"type="text/css"href="../themes/icon.css"><script type="text/javascript"src="../jquery-1.4.2.min.js"></script><script type="text/javascript"src="../jquery.easyui.min.js"></script><script type="text/javascript">$( function() {$('#aa').accordion( {width : 400,height : 200,fit : false});});</script></head><body><div id="aa"border="true"><div title="Title1"icon="icon-save" style="overflow: auto; padding: 10px;"> <h3style="color: #0099FF;">Accordion for jQuery</h3><p>Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.</p></div><div title="Title2"icon="icon-reload"selected="true"style="padding: 10px;">content2</div><div title="Title3">content3</div></div></body></html>1.1.2效果图1.1.3 扩展实例html代码中<div id="aa"border="true">此行也可写成<div id="aa" class="easyui-accordion" style="width:300px;height:200px;" fit="false" border="false">,并且将js代码全部去掉,效果图是一样的。
用户管理系统设计
用户管理系统设计指导老师:***组长:罗文文组员:黄丽徐丽安华林雷微微目录一、-------------------------------------------------------概述1.------------------------------------------------------ 项目名称2.------------------------------------------------------ 功能概述3.------------------------------------------------------ 开发环境及框架4.------------------------------------------------------ 用户环境二、-------------------------------------------------------项目框架优点1.------------------------------------------------------ springmvc介绍2.------------------------------------------------------ easyUI介绍3.------------------------------------------------------ jquery介绍4.------------------------------------------------------ hibernate介绍三、-------------------------------------------------------项目需求分析四、-------------------------------------------------------流程介绍五、-------------------------------------------------------数据库信息设计六、-------------------------------------------------------功能模块介绍七、-------------------------------------------------------项目具体实现八、-------------------------------------------------------总结一:概述1.项目名称用户信息管理系统2.功能概述用户管理系统主要是用于公司方便来管理人员的,本系统主要是对用户个人信息的管理,包括注册、修改、删除,查询等。
easyui checkbox用法 -回复
easyui checkbox用法-回复EasyUI是一个基于jQuery的开源UI库,提供了丰富的界面组件和易用的API,使得开发者可以轻松地构建各种Web应用程序。
在EasyUI 中,checkbox是其中之一的组件,在本文中我们将重点讨论EasyUI checkbox的用法。
1. 引入EasyUI库首先,在使用EasyUI checkbox之前,我们需要在项目中引入EasyUI 库。
可以在EasyUI官网(html<head><script src="jquery.js"></script><script src="easyui.js"></script></head>2. 创建checkbox组件通过HTML的<input type="checkbox">标签可以创建一个简单的checkbox,但是EasyUI提供了更丰富的操作和样式。
使用EasyUI checkbox,我们可以通过调用checkbox()方法来创建一个checkbox 组件,并为其传入一些配置参数以满足我们的需求。
例如:javascriptlabel: '复选框'});在上述代码中,我们使用了id为"checkbox1"的元素创建了一个checkbox组件,并设置了label属性为"复选框"。
3. 设置checkbox属性除了label属性,EasyUI checkbox还提供了其他一些常用的属性,这些属性可以通过在checkbox()方法的配置参数中指定来进行设置。
下面是一些常用的checkbox属性:- checked: 设置checkbox是否选中。
可以将该属性设置为true或false,默认值为false。
- disabled: 设置checkbox是否禁用。
JQueryEasyUi(Tree树)详解(转)
JQueryEasyUi(Tree树)详解(转)第⼀讲:JQuery Easy Ui到底是什么呢?⾸先咱们知道JQuery是对Java Script的封装,是⼀个js库,主要提供的功能是选择器,属性修改和事件绑定等等。
JQuery ui是在jQuery的基础上,利⽤jQuery的扩展性,设计的插件。
那么JQuery Easy Ui到底是什么呢?我的理解就是⽐JQuery ui更强⼤,同样都是实现绚丽的多功能效果!jQuery Easy UI的⽬的就是帮助Web开发者更轻松的打造出功能更丰富并且更美观的UI界⾯。
当然JQuery Easy ui提供了⽤于创建跨浏览器⽹页的完整的组件集合,包括功能强⼤的 datagrid(数据⽹格)、treegrid(树形表格)、 panel(⾯板)、combo(下拉组合)等等。
⽤户可以组合使⽤这些组件,也可以单独使⽤其中⼀个。
其实就这么简单,对某个事物的定义,个⼈感觉没有什么固定的答案,只是那种答案更⽅便你的记忆,你记住的,它存在你深深的脑海⾥的,便是答案!JQuery Easy Ui插件列表如下:分类插件Base(基础)Parser 解析器Easyloader 加载器Draggable 可拖动Droppable 可放置Resizable 可调整尺⼨Pagination 分页Searchbox 搜索框Progressbar 进度条Tooltip 提⽰框Layout(布局)Panel ⾯板Tabs 标签页/选项卡Accordion 折叠⾯板Layout 布局Menu(菜单)与 Button(按钮)Menu 菜单Linkbutton 链接按钮Menubutton 菜单按钮Splitbutton 分割按钮Form(表单)Form 表单Validatebox 验证框Combo 组合Combobox 组合框Combotree 组合树Combogrid 组合⽹格Numberbox 数字框Datebox ⽇期框Datetimebox ⽇期时间框Calendar ⽇历Spinner 微调器Numberspinner 数值微调器Timespinner 时间微调器Slider 滑块Window 窗⼝Window(窗⼝)Window 窗⼝Dialog 对话框Messager 消息框DataGrid(数据⽹格)与Tree(树)Datagrid 数据⽹格Propertygrid 属性⽹格Tree 树Treegrid 树形⽹格但是今天咱们只针对Tree(树)连接数据进⾏讲解!下⾯是它的⼀些基本的属性:id: 绑定到节点的标识值;text:显⽰⽂本;iconCls: 显⽰icon的css样式;checked: 节点是否选中;state: 节点状态, 'open' 或者 'closed';attributes: 绑定到节点的⾃定义属性;target: ⽬标 DOM 对象;children: ⼀个节点数组,定义⼀些⼦节点。
项目二次开发源代码及详细说明
项目二次开发源代码及详细说明I. 项目介绍本文档描述了一个二次开发项目的源代码及详细说明。
该项目是基于一个开源的企业资源管理系统进行二次开发,以满足特定客户的需求。
原始系统功能包括客户关系管理、订单管理、库存管理等,但客户需要在原始系统的基础上增加一些新的功能,比如业务报表的定制、权限管理的优化等。
为了满足客户的需求,我们需要对原系统进行二次开发,修改和添加一些功能,以适应客户的特定业务需求。
II. 项目目标1. 通过二次开发,实现客户需求的定制化功能,并满足特定的业务需求。
2. 优化原系统的权限管理模块,增强系统的安全性和稳定性。
3. 重构原系统的报表模块,实现业务报表的定制化功能。
4. 对原系统的库存管理模块进行优化,提高系统的性能和稳定性。
III. 项目源代码及详细说明1. 新增功能模块:客户需要系统新增一个产品价格管理模块,方便他们随时根据市场需求调整产品的价格。
我们在系统中增加了产品价格管理的功能模块,客户可以在这个模块中根据自己的需求,对产品的价格进行调整。
以下是新增功能模块的主要源代码及详细说明:```python# 产品价格管理模块import datetimefrom django.db import modelsclass Product(models.Model):name = models.CharField(max_length=100, verbose_name='产品名称')price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='产品价格') create_time = models.DateTimeField(default=datetime.now, verbose_name='创建时间')class Meta:verbose_name = '产品'verbose_name_plural = verbose_name# 增加产品价格调整记录模型class PriceAdjustRecord(models.Model):product = models.ForeignKey(Product, on_delete=models.CASCADE, verbose_name='产品')old_price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='调整前价格')new_price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='调整后价格')adjust_time = models.DateTimeField(default=datetime.now, verbose_name='调整时间')class Meta:verbose_name = '价格调整记录'verbose_name_plural = verbose_name```上面的代码是在原系统中新增的产品价格管理模块的源代码。
easyui面试题
easyui面试题1. 什么是easyui?easyui是一个基于jQuery的开源UI框架,提供了一系列易于使用的扩展插件,使得前端开发更加简单高效。
它包含了丰富的UI组件和强大的交互特性,可以帮助开发者快速构建出漂亮、交互丰富的Web应用程序。
2. easyui主要有哪些特性?- 简单易用:easyui提供了丰富的简洁的API接口,使用简单明了,开发者能够快速上手。
- 丰富的UI组件:easyui提供了大量的UI组件,包括表格、表单、弹窗、菜单等,满足了各种常见的前端交互需求。
- 兼容性强:easyui兼容多种浏览器,并且适配了移动端,方便在不同平台下使用。
- 定制性强:easyui提供了丰富的主题和样式的选择,开发者可以根据项目需求进行定制。
- 数据操作方便:easyui提供了丰富的数据操作组件,如数据表格和树形控件,方便对数据进行增删改查操作。
3. easyui中常用的组件有哪些?- Datagrid(数据表格):用于展示数据,并支持排序、筛选、分页等功能。
- Form(表单):用于快速构建表单,包括输入框、下拉框、日期选择器等表单元素。
- Dialog(对话框):用于弹窗提示或交互,可以定制化对话框的样式和功能。
- Tree(树形控件):用于展示树形结构的数据,支持展开收起和节点选择等操作。
- Panel(面板):用于布局和组织页面,可以包含其他组件,并允许自定义样式和布局。
- Tabs(选项卡):用于实现多个内容页面在同一界面内切换显示。
4. 如何使用easyui?使用easyui首先需要引入jQuery和easyui的相关资源文件,如js和css文件。
然后按照文档提供的API,进行组件的初始化和相关配置,即可使用easyui提供的各种组件和功能。
例如,使用datagrid组件展示数据,可以通过如下代码实现:```html<script src="jquery.min.js"></script><script src="jquery.easyui.min.js"></script><link rel="stylesheet" href="themes/easyui.css"><table id="datagrid"></table><script>$(function(){$('#datagrid').datagrid({url: 'data.json',columns:[[{field:'id',title:'ID',width:100},{field:'name',title:'Name',width:100},{field:'email',title:'Email',width:100}]]});});</script>```5. easyui的优缺点是什么?优点:- 简单易用,学习曲线低,开发效率高。
PHP Ajax jQuery网站开发项目式教程
学习目标 项目描述 任务一展示学生资料 任务二计算学生年龄 任务三判断学生星座 任务四学生个性标签 任务五展示学生列表 任务六分页列表展示 动手实践
学习目标 项目描述 任务一用户资料编辑 任务二用户头像上传 任务三用户相册 任务四记录浏览历史 任务五用户登录与退出 任务六登录验证码 动手实践
学习目标 项目描述 任务一体验类与对象 任务二面向对象三大特征 任务三魔术方法 任务四静态工具类 任务五自动加载 任务六异常处理 任务七抽象类与接口
PHP+Ajax+jQuery网站开发 项目式教程
读书笔记模板
01 思维导图
03 目录分析 05 精彩摘录
目录
02 内容摘要 04 读书笔记 06 作者介绍
思维导图
本书关键字分析思维导图
技术
学习
项目
个性
用户
任务
网站
项目
开发
任务 项目
学生
网站
描述
面向对象
实践
新闻
目标
管理
内容摘要
本书共8个项目,41个任务。首先通过成熟开源项目的部署,让初学者深刻的了解到基于PHP和MySQL的项目 运行过程;然后完成学生星座判断、个性标签制作、用户头像上传、登录验证码等多个任务,将PHP的基础语法、 Web表单与会话技术、文件与图像技术运用到项目开发中,达到学用结合的目的;接着通过员工信息管理以及新 闻发布系统的开发,全面学习面向对象编程和PHP如何操作MySQL数据库;再接着完成瀑布流布局、三级联动、无 刷新分页、JSONP跨域请求等多个任务,学会使用jQuery和Ajax技术完成项目特效。最后综合运用本书所学的知 识和MVC框架,开发电子商务站,让读者融会贯通、迅速积累项目开发经验。
jquery源代码详解
前段时间上班无聊之时,研究了下jquery的源码。
现在记录下自己的成果,分享一下。
下面是我自己琢磨和编写的jquery模型,里面有我所写的注释。
/** my-jquery-1.0*//** 网上也有很多实现的版本,不过这是我在我自己的理解下写的,加上注释,希望可以解释清楚。
*//** 整个jquery包含在一个匿名函数中,专业点叫闭包,就是下面的形式,如(function(window,undefined){}(window))。
* 闭包的定义在这里不太容易讲清楚,我只说下这样说的好处。
* 1.使整个jquery中定义的变量成为局域变量,不会影响全局变量,个人觉得这也是jquery被成为轻量级的原因之一。
* 2.增加jquery运行速度,因为局域变量运行速度高于全局变量。
* 3.就像你看到,传入的window和undefined,可以自定义名字,方便编写。
当然,现在你看到的仍是原来的写法,但是你可以看看jquery的min版本,一定是压缩的。
(function( window, undefined ) {var/*jquery的定义,我们平时用的$和jQuery就是它。
这里可以看出来真正的jQuery的对象是init方法产生的。
*这样做采用了工厂模式,创建jQuery对象时不需要再new一个对象了。
所以你可以发现,我们创建jQuery对象的方式是$(selector)或者是jQuery(selector)*原版的jQuery定义方法多了个上下文参数context,此处我省略了。
*/jQuery = function(selector){return new jQuery.fn.init(selector);},/** 引用数据、对象以及字符串的方法*/core_push = Array.prototype.push,core_slice = Array.prototype.slice,core_indexOf = Array.prototype.indexOf,core_toString = Object.prototype.toString,core_hasOwn = Object.prototype.hasOwnProperty,core_trim = String.prototype.trim;/** jQuery对象的定义,这里去掉了所有的属性,只留下了init()。
easyhook 例子-概述说明以及解释
easyhook 例子-概述说明以及解释1.引言1.1 概述EasyHook是一个开源的Windows API Hooking 框架,它的设计目标是为了允许开发者在不修改原始代码的情况下,对已编译的应用程序或系统功能进行拦截和修改。
通过使用EasyHook,开发者可以实现对目标应用程序中指定函数的替换、监视和自定义功能的注入。
API Hooking是一种常见的技术,它通过拦截目标应用程序与操作系统之间的函数调用,使得我们可以截获这些函数的输入参数和返回值,并且可以在这些函数被调用前后做一些自定义的操作。
而EasyHook作为一个底层Hooking框架,提供了一套简单易用的API,帮助我们快速、方便地实现Hook功能。
与其他Hooking解决方案相比,EasyHook具有以下几个优点。
首先,它采用用户模式Hook的方式,不需要特权访问,因此可以安全地运行在普通用户账户下。
其次,EasyHook提供了友好的编程接口和详细的文档,降低了学习和使用的门槛。
再次,EasyHook支持跨平台,可以用于Windows XP到Windows 10的各个版本,并且还支持32位和64位应用程序。
此外,EasyHook还支持在不同的.NET Framework版本中使用,提供了强大而灵活的功能,使得开发人员能够快速解决各种Hooking问题。
EasyHook的使用场景非常广泛,例如:调试和逆向工程、性能分析、安全审计、游戏模块注入等。
它可以帮助我们监视和改变目标应用程序的行为,甚至可以在运行时动态修改应用程序的行为,从而满足我们的个性化需求。
在本文中,我们将介绍EasyHook框架的基本原理和使用方法,并分析其在实际应用中的优势和特点。
最后,我们将总结EasyHook的应用价值,展望和探讨其未来的发展方向。
通过对EasyHook的深入学习和实践,相信读者能够更好地掌握Hooking技术,并在实际项目中灵活运用。
1.2文章结构1.2 文章结构本文将按照以下结构来叙述和探讨easyhook的例子和使用方法:1. 引言:对easyhook进行简要介绍,并解释文章涉及的目的和意义。
jQueryEasyUI框架使用文档
JQUERY EASYUI框架使用文档jQuery EasyUI是一个基于jQuery实现的Web UI框架,用法非常简单,但是功能非常强大,使用它你可以使用很少的Javascript代码来制作适合自己的网页。
主页:下载:/download这里介绍一下快速使用这个框架的方法:首先在你使用的HTML页面的头部需要包含一些CSS文件和JS文件:1.<link rel="stylesheet" type="text/css"href="../themes/default/easyui.css">2.<script type="text/javascript"src="../jquery-1.4.2.min.js"></script>3.<script type="text/javascript"src="../jquery.easyui.min.js"></script>这三个文件是必须要包含的,第一个是EasyUI的CSS文件,后面两个JS一个是jQuery,一个是EasyUI的JS文件。
包含这几个文件后就可以使用EasyUI了,因为EasyUI的功能十分强大,所以把这些功能分类如下,便于大家学习使用,我会在随后的文章里逐一介绍每个分类的用法和例子:JQUERY EASYUI 面板(PANEL)用法星期五,2010 四9 00:47:37这篇文章介绍一下面板(Panel)用法以及参数,首先我们可以先看一下面板功能可以做什么,下图就是一个面板的实例。
(查看演示)同样我们来通过一个小例子来学习一下这些参数,HTML代码如下:1.<div id="p" title="My Panel" collapsible="true"style="padding:10px;">2. Panel Content3.</div>然后按照《jQuery EasyUI框架使用文档》包含必要文件后,只要在$(function(){ }); 里添加一行代码来生成面板:1.$('#p').panel(options);也可以给面板函数添加一些参数:1.$('#p').panel({2. title: 'My Panel',3. tools: [{4. iconCls:'icon-new',5. handler:function(){alert('new')}6. },{7. iconCls:'icon-save'8. handler:function(){alert('save')}9. }]10.});也可以把面板移动到其他位置:1.$('#p').panel('move',{2. left:100,3. top:1004.});在jQuery EasyUI的1.1版本以后又添加了几个新的插件,日期框就在其内,在web查询信息的时候经常会用到日期框,下面来看一下jQuery EasyUI的效图:1.<input id="dd" type="text"></input>然后按照《jQuery EasyUI框架使用文档》包含必要文件后,在$(function(){ }); 里插入下面的代码即可:1.$('#dd').datebox(options);jQuery EasyUI日期框需要依存于一下的几个插件:* calendar(日历)* validatebox(验证框)下面来介绍DateBox的具体用法,首先来看属性:事件方法jQuery EasyUI可以方便实现很多功能,这里将会介绍一下可拖动(Draggable)的具体用法,jQuery EasyUI不仅可以轻松实现DOM元素的拖动,而且可以使用一些参数让它的使用更加灵活,我们来通过一个小例子来学习一下这些参数:(查看演示)HTML代码如下:1.<div id="dd" style="width:100px;height:100px;border:1px solid#ccc;">2. <div id="title" style="background:#ccc;">title</div>3.</div>然后按照《jQuery EasyUI框架使用文档》包含必要文件后,只要在$(function(){ }); 里添加一行代码即可:1.$('#dd').draggable(options);其中options 是可选的参数,可以写,也可以不写,下面再举个写参数的例子,1.$('#dd').draggable({2.handle:'#title',3.disabled:false,4.edge:1,5.axis:'h',6.onStartDrag:function(){7.8.$("<div></div>").appendTo("body").html('startdrag:'+$(this).css('left'));9.10.}11.});下面介绍一下所有的参数和事件,如下:参数事件了解这个参数和事件的作用以后,就可以很灵活的使用jQuery EasyUI 可拖放(Draggable)的功能了。
EasyUI
• 表单提交的三种方式
• 传统ajax方式提交 • 定义form自动提交 • 定义form手动提交
• 回车换行
• $('#myform').find('input').on('keyup' , function(event){
if(event.keyCode == '13'){ $('#myform').submit(); } });
• 理解Jquery组件之间的关系 • 理解Jquery的俩种写法 • 理解动态加载组件的方法,但不推荐使用
• 动态加载 easyloader.js • jquery.parser.js 解析标签里的class值
• 学会查API以及培养调试bug的能力
第三讲:Form表单
• 学会Form表单的验证
第一讲:1.2 Message 消息框
• Messager组件
• • • • • $.messager.alert $.messager.confirm $.messager.prompt $.messager.progress $.messager.show
第二讲:基础组件(panel、window、dialog)
第八讲:treegrid、combotree
• 对于easyui 掌握了datagrid、和tree的使用 • 那么对于一些扩展的组件我们也可以很容易的实现
第四讲:Layout布局
• 学会使用Layout组件布局 • accordion手风琴组件 • tabs组件的使用
第五讲:5.1 Dategrid数据表格
• 理解datagrid的概念
jquery-easy-ui解析
$("#myDiv").panel({ title: "js方式的panel", width: 300, height: 500, fit: true, border: true, content: "设置面板内", )}
<div style="width:300px;height:500px" class="easyui-panel" title="第一个面板" iconCls="icon-save" collapsible="true"> </div>
1.3、DATA-OPTIONS属性
我们在写 "iconCls"这种属性的时候编辑器会提示错误,easyui提供 data-options属性给我来写组件的配置如下面代码
我们需要引入3个基本的文件
<script src="../easyui/jquery-1.8.0.min.js"></script> <script src="../easyui/jquery.easyui.min.js"></script> <link href="../easyui/themes/default/easyui.css" rel="stylesheet" />
easyui版helloworld我们在写easyui的js代码的时候也需要dom树生成后也就是说我们需要写function这个方法二内容组件二内容组件2121panelpanel面板面板panel面板是easyui里面非常基础的一个内容组件在我们后期学的tabs选项卡accordion手风琴这两种内容组件都依赖于panel组件
跟我学jQuery EaseUI Web前端框架——EaseUI组件应用技术及实例
目录1.1跟我学jQuery EaseUI Web前端框架——EaseUI组件应用技术及实例 (2)1.1.1EaseUI官方网站 (2)1.1.2EasyUI相关的系统库文件引入说明 (4)1.1.3Easy UI的控件及相关的技术特性 (8)1.1.4Easy UI组件的初始化 (11)1.1跟我学jQuery EaseUI Web前端框架——EaseUI组件应用技术及实例jQuery EasyUI 框架提供了创建网页所需的一切,帮助您轻松建立站点。
本教程将告诉您如何使用jQuery EasyUI 框架创建应用。
1.1.1EaseUI官方网站1、官网/2、中文/3、下载系统库/download/4、主要的技术特性使用easyui不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面。
easyui是个完美支持HTML5网页的完整框架,easyui节省您网页开发的时间和规模,easyui很简单但功能强大的。
5、EaseUI相关的帮助文档(1)英文帮助/documentation/index.php#(2)中文教程/tutorial/(3)在线中文教程/jeasyui/jqueryeasyui-tutorial.html1.1.2EasyUI相关的系统库文件引入说明1、Jquery库引用EasyUI中自带了Jquery的库,版本是V2.0.0,请注意该版本不一定适用于你的项目场景,关于JqueryV2.0.0对IE浏览器的支持也是每一个开发人员需要注意的。
Jquery V2.0.0支持IE9+,但最新的不一定是最好的,有时候,请果断更换你的jquery 版本。
还有一点注意的是,项目中通常不会只有一个地方使用jqeury,使用easy ui时,使用项目中统一的jquey版本库,也不失为一种好的方案。
2、关于easyui包目录结构调整说明通常从jquery-easyui官网中下载下来的包,是一个相当完整的包:其目录结构如下:3、其中的各个目录含义(1)demo目录是easyui使用示例,该目录下存放的是EasyUI PC 版各插件的示例示例。
jQueryEasyUI
查找插件和帮助(常用网址)
jQueryUI官方网站 jQueryUI官方网站提供的API文档 jQuery官方网站的插件库
onLoadError()
加载远程数据发生某些错误时触发
onBeforeLoad(param) 发送加载数据的请求前触发
15/21
datagrid插件5-3
Column对象常用属性
属性
说明
String title
列的标题文字
String field
列的字段名
Number width
列的宽度
String align
//是否显示复选框
onDblClick:function(node){ //鼠标双击事件
$(this).tree("toggle",node.target); //改变当前节点状态
}
});
});
</script>
演示示例1:树形菜单
11/21
tree插件5-5
tree数据节点说明
参数
说明
String id 或 Integer id 当前节点的id
<script> $(function(){
jquery.easyui.min.js包含了easyUI中的所有插件
$('#tree').tree({
url:'tree_data.json',
//远程加载tree数据的url路径
animate:true,
//是否开启动画效果
checkbox:true,
jQuery源码解读
总体架构jQuery是个出色的javascript库,最近结合它写javascript,看了下源码。
先从整体、全局的看,jQuery的源码几乎都在下面的代码中:(function(){//……})();第一个括号里面是个匿名函数,第二个括号表示马上执行第一个括号里面的代码。
首先明白,javascript里面是没有命名空间的,要保证你的javascript函数、对象与其他的不冲突,这里用了javascript的一个技巧:你的所有javascript 函数、对象都在一个匿名函数里面定义,确保了所定义的函数、对象的有效范围,起到了命名空间的作用。
既然作用范围在这个匿名函数中,怎么被别人使用呢?下面看它的下面代码:var jQuery = window.jQuery = function(selector, context) {//……};这里让jQuery库中最重要的对象jQuery成为了window对象的一个属性,这样就可以在其他地方像使用document(document也是window的一个属性)一样使用jQuery了。
也许使用过jQuery的朋友惊讶-我没有使用jQuery对象,一直使用$的。
没错,那是jQuery的同名对象:window.$ = jQuery;现在明白了吧。
执行过程分析JavaScript是一门基于对象的语言,而它的对象技术的实现又和其他语言有着很大的差异,在JavaScript中,一个类的定义一般采用下面这种模式(我所看到的):// 定义一个构造函数;testClass(param1, param2) {this.attr1 = param1;this.attr2 = param2;...}// 在prototype对象上扩展,加上相应的方法;testClass.prototype = {Method1: function() {...},Method2: function() {...},...}// 定义一个实例;var test = new testClass();在jQuery.js中,同样也是这种模式,只不过它要复杂很多,而且它还定义了一个jQuery.extend()的静态方法来扩展类的功能,jQuery.js代码执行过程完整分析如下:// 防止多次载入而进行jQuery对象的判断;if ( typeof window.jQuery == "undefined" ) {window.undefined = window.undefined;// jQuery的构造函数;var jQuery = function( a, c ) { ... };// jQuery的命名空间$;if ( typeof $ != "undefined" ) jQuery._$ = $;var $ = jQuery;// 给jQuery的prototype增加一些基础方法和属性;// 其中有些方法是调用下面的扩展方法实现的;// 注意下面的jQuery.fn = jQuery.prototype;jQuery.fn = jQuery.prototype = {each: function( fn, args ) { ... },find: function( t ) { ... },...};// jQuery实现继承的方法;jQuery.extend = jQuery.fn.extend = function( obj, prop ) {...}; // 实现一些基础的函数,有大部分是上面调用;jQuery.extend({init: function() { ... },each: function( obj, fn, args ) { ... },find: function( t, context ) { ... },...});// 浏览器版本的检测;new function() {jQuery.browser = { safari:..., opera:..., msie:..., mozilla:... };...};// jQuery.macros扩展,主要用于jQuery.init(),进行jQuery的初始化; jQuery.macros = {filter: [ ... ],attr: { ... },each: { ... },...};// jQuery初始化;jQuery.init();// 实现jQuery的重要方法ready();jQuery.fn.extend({ready: function( f ) { ... }...};// 上面ready()方法的具体实现;jQuery.extend({ready: function() { ... },...};// 对浏览器某些事件进行绑定和解绑定;new function() {...jQuery.event.add( window, "load", jQuery.ready );};// 当IE浏览器关闭时,清除上面绑定的事件,防止内存泄漏;if ( jQuery.browser.msie ) jQuery(window).unload( ... );// 实现一些浏览器效果;jQuery.fn.extend({show: function( speed, callback ) { ... },hide: function( speed, callback ) { ... },...};// 上面的一些函数具体实现;jQuery.extend( {...} );// 以下都是Ajax的实现,这里声明原型,具体实现调用下面的函数;jQuery.fn.extend({loadIfModified: function(url, params, callback ) { ... },...};// 针对IE浏览器创建不同的XMLHttpRequest对象;if (jQuery.browser.msie && typeof XMLHttpRequest == "undefined") { ... };// Ajax函数的绑定;new function() {var e = "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess".s plit(",");...};// Ajax函数的具体实现;jQuery.extend({get: function( url, data, callback, type, ifModified ) { ... }, post: function( url, data, callback, type ) { ... },ajax: function( type, url, data, ret, ifModified ) { ... },...}}构造函数详解在jQuery.js的构造函数中,充分利用了JavsScript语言的动态性——对行参的类型和个数没有的严格要求,以至于一个函数可以实现多种功能需求,也为JavaScript语言的多态性提供了基础,在这个构造函数中,提供了六种不同的调用格式(根据官方API文档),具体如下($ = jQuery):1、$(String expr):根据给定的CSS选择符查找匹配的元素,如$("div>p");2、$(Element elem):将给定的DOM元素对象转换为jQuery对象,如$(document).find("div>p");3、$(Array<Element> elems):如$(myForm.elements).hide();4、$(Function fn):是$(document).ready()的简写模式,如:$( function fn(){ ... } );5、$(jQuery obj):如:var div = $("div"); $(div).find("p");6、$(String expr, Element context):在context中查找expr,如:$("div", xml.responseXML);另外,jQuery中提到了Chainable Methods的思想,也就是调用jQuery中的方法会返回一个jQuery对象,仍然可以继续调用其中的方法,这样,就形成了一个“链条”,通过“.”一个一个调用下去,这个在构造函数中有具体体现,其中有如下一条语句:if( window == this ) return new jQuery( a, c );这个就是为了返回一个jQuery对象,在首次调用jQuery( a, c )函数时,this是等于window的,所以每次都会创建一个jQuery对象,更详细的代码分析见下:// jQuery的构造函数;var jQuery = function( a, c ) {// $(document).ready()的简写形式,只有在$(function(){})下才会执行;if ( a && typeof a == "function" && jQuery.fn.ready ) return jQuery(document). ready(a);// 确保参数a非空,默认值为document;a = a || jQuery.context || document;// 如果参数a是jQuery对象(a.jquery="1.0.3"),则克隆一个与a相同的jQuery对象;if ( a.jquery ) return jQuery( jQuery.merge( a, [] ) );// 从给定的参数c(要求c必须是jQuery对象)中查找a;if ( c && c.jquery ) return jQuery( c ).find( a );// 如果是初次调用$(),因为在window环境下,所以创建一个新的jQuery对象,如果去掉new则循环执行;if ( window == this ) return new jQuery(a,c);// 分析HTML串,如“div<ul>p”;if ( a.constructor == String ) {var m = /^[^<]*(<.+>)[^>]*$/.exec( a );if ( m ) a = jQuery.clean( [ m[ 1 ] ] );}// 如果参数a是元素数组,则要执行jQery.merge(),否则要执行jQuery.find();this.get( a.constructor == Array || a.length && !a.nodeType && a[0] != undefi ned && a[0].nodeType? // 处理元素数组;jQuery.merge( a, [] ): // 查找相匹配的元素并保存;jQuery.find( a, c ) );// 如果附加了另外的函数,则在每个相匹配的jQuery对象上执行这个函数;var fn = arguments[ arguments.length - 1 ];if ( fn && typeof fn == "function" ) this.each( fn );return this;}; //jQuery的结束;插件扩展机制<SCRIPT LANGUAGE="JavaScript"><!--//防止god变量重复定义,测试环境中此句好像没什么作用if(typeof window.god == "undefined"){//这里是god的构造函数,这句也可以写成window.god = function(a,c)...,也就是说所有定义的全局变量都是window的属性var god = function(a,c){if(window==this){return new god(a,c);//写这句的目的是方便使用,在外部使用god()就可以了,而不用写new god();}return this;}god.sayHello = function(){alert("hello in static way.");}//如果$这个命名空间已经被其它JS库暂用,就把其它JS库定义的存到自己的_$属性里边if(typeof $ != "undefined"){god._$ = $;}var $ = god;//定义自己的命名空间,以后写god的地方都可以直接写成$// 给god的prototype增加两个基础方法和一个属性,这些是所有的god对象共有的,其中第2个方法又去调用了扩展的方法;god.fn=god.prototype={sayHello:function(){alert("hello in non-static way!");},sayGoodbyes:function(){this.sayGoodbye(); //调用god.fn.extend()中的sayGoodbye方法$().sayGoodbye(); //调用god.fn.extend()中的sayGoodbye方法$.sayGoodbye(); //调用god.extend()中的sayGoodbye方法,这个是静态方法.$.fn.sayGoodbye(); //调用god.fn.extend()中的方sayGoodbye法},god:"1.0.0"}// 给god的prototype增加一个extend()方法,同时给god增加一个静态的extend()方法。
EasyUI高级使用之JEECG 开发指南
如果没有J2EE支持的话,需要加上;第二步.修改配置文件[1].代码生成器配置文件:resources/configuration/database.properties(数据库连接)resources/configuration/source_path.properties(代码生成路径配置[2].框架配置文件: resources/config.properties (数据库连接)注意:hibernate.hbm2ddl.auto=create默认情况下该属性为create,项目启动的时候,项目会自动创建基础表,所以不需要数据库脚本;如果不想每次项目启动创建表,则将该属性可改为none[3]. 配置项目的Sou rce目录[com.alibaba.druid.filter.stat.StatFilter]merge sql error, dbType mysql, sql :alter table TAUTH drop foreign key FK4BE8BFC70E6FF6Ecom.alibaba.druid.sql.parser.ParserException: error FOREIGN第五步:登陆系统,用户账号:admin/admin第五步.代码生成器工具类(生成器如何使用,请参照《第四章: 生成器使用规则》)com.test.CodeUtil(单表模型)com.test.CodeOneToMainUtil(一对多父子模型)常见部署问题:说明:如果你不是使用my elipse,切换eclipse的时候,可能会出现一些问题;问题汇总:[1].WEB目录不是:WebRoot[2].项目Class设置不是:WebRoot/WEB-INF/classes[3].创建的表没有字段[obid][create_dt][org.hibernate.SQL]alter table TAUTH drop foreign key FK4BE8BFC70E6FF6E[com.alibaba.druid.filter.stat.StatFilter]merge sql error, dbType mysql, sql :alter table TAUTH drop foreign key FK4BE8BFC70E6FF6Ecom.alibaba.druid.sql.parser.ParserException: error FOREIGN[4].项目启动时候报错:这个错误忽略没关系config.properties配置文件中hibernate.hbm2ddl.auto=create在表没有初始化成功的时候,此参数不能改为:none[5].关于Table 'easyssh.tauth' doesn't exist 问题解决在导入项目到myeclipse,一定要把resources勾选,一般平时做项目配置文件在src或WEB-INF下,习惯成自然,导致几次部署都有问题,现在解决了。
2016年最新版JavaEE学科课程大纲 黑马程序员官网
2016年最新版JavaEE学科课程大纲黑马程序员官网2016年最新版JavaEE学科课程大纲一、JavaWeb部分第一阶段:JavaWEB 部分一之WEB前端技术1、Html了解HTML语言,HTML语言背景知识,掌握HTML 的整体结构、文件标签、排版标签、块标签、字体标签、列表标签、图形标签、超链接标签、表格标签、表单标签(form 标签、input标签、select标签等)、分区标签、头标签。
(1)CSSCSS介绍、CSS导入方式(内部样式表、内联样式表、外部样式表)、五大CSS选择器(ID选择器、类选择器、元素选择器、属性选择器、伪类等)、样式属性介绍。
(2)JavaScript基础JavaScript编程,JavaScript语法、数据类型、运算符、表达式、流程控制,JavaScript内部对象、数组、字符串、日期时间、数学函数、正则表达式,JavaScript函数、自定义函数、全局函数,BOM介绍、window 对象、location对象、history对象使用。
DHTML编程,理解DOM树,DOM对象,常用DOM对象的属性、方法和事件,编写事件处理程序、使用DOM操作HTML文档、遍历文档树上的节点、搜索文档中特定的元素、修改文档内容、往文档添加新内容、使用DOM操作XML文档。
(3)JQuery基础认识JQuery、选择器介绍、css选择器、jQuery选择器及其优势势、基本选择器、层次选择器、过滤选择器、表单选择器、选择器练习小案例等;JQuery操作DOM:DOM分类、查找元素/属性节点、创造元素/属性/文本节点、插入节点、删除节点、复制节点、替换节点、包裹节点、属性操作、样式操作、遍历节点、CSS-DOM操作;动画和事件:jQuery中的事件、加载DOM、事件绑定、合成事件、事件冒泡、事件对象的属性、移除按钮上注册的事件、模拟操作、JQuery中的动画。
(4)BootStrap响应式页面的的开发与设计,强大的栅格布局,内置的CSS类库,JS插件,快速布局商城页面。
JqueryEasyui对话框组件Dialog使用详解(14)
JqueryEasyui对话框组件Dialog使⽤详解(14)Dialog对话框组件依赖于Window(窗⼝)组件、linkbutton 组件加载⽅式Class加载<div class="easyui-dialog"title="弹出框"data-options="iconCls:'icon-add',resizable:true,modal:true"style="width: 400px;height: 200px;">弹出框内容</div>JS调⽤加载<div id="box">弹出框内容</div><div id="tt"><a href="#" class="easyui-linkbutton"data-options="iconCls:'icon-edit',plain:true">编辑</a><a href="#" class="easyui-linkbutton"data-options="iconCls:'icon-help',plain:true">帮助</a></div><script>$(function () {$('#box').dialog({width : 400,height : 200,title : '弹出框标题',modal : true,// 是否显⽰可折叠按钮collapsible : false,// 是否显⽰最⼩化按钮minimizable : false,// 是否显⽰最⼤化按钮maximizable : false,// 是否可以改变对话框窗⼝⼤⼩resizable : false,// 设置对话框窗⼝顶部⼯具栏//buttons : '#tt',toolbar : [{text : '编辑',iconCls : 'icon-edit',handler : function () {alert('edit');},}, {}],// 对话框窗⼝底部按钮buttons : [{text : '保存',iconCls : 'icon-ok',handler : function () {alert('save');}},{}]})});</script>属性列表窗⼝属性扩展⾃ Window(⾯板),窗⼝新增或重新定义的属性如下Dialog 是继承⾃ Window 组件的,所以 Window 组件和 Panel 组件均可⽤事件列表窗⼝的事件完整继承⾃ Window(⾯板)。
EasyUI实现第二层弹出框的方法
title : '', width : 840, height : 680, modal : true, onClose : function() { $.modalDialogTwo.handler = undefined; $(this).dialog('destroy'); }, onOpen : function() { // parent.$.messager.progress({ // title : '提示', // text : '数据加载中,请稍后....' // }); } }, options); opts.modal = true;// 强制此dialog为模式化,无视传递过来的modal参数 return $.modalDialogTwo.handler = $('<div/>').dialog(opts); } };
这篇文章主要为大家详细介绍了基于jquery实现左右无缝轮播图的具体代码文中示例代码介绍的非常详细具有一定的参考价值感兴趣的小伙伴们可以参考一下
EasyUI实 现 第 二 层 弹 出 框 的 方 法
这是网友在EasyUI拓展时的代码。
可以根据实际需要自行修改。
$.modalDialog2.handler 这个handler代表弹出的dialog句柄 $.modalDialog2.xxx 这个xxx是可以自己定义名称,主要用在弹窗关闭时,刷新某些对象的操作,可以将xxx这个对象预定义 好
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在上一篇文章《使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享》我们分享了使用Jquery EasyUI来进行开发的相关方法,同时对入群的用户提供了使用Jquery EasyUI开发的框架案例提供了测试地址进行在线测试,文章发表后得到了非常多的反馈,对后期版本的改进提供了很好的帮助,在此感谢!整个文章皆在说明如何使用进行管理类信息系统的开发,EasyUI也只是做个界面,业务核心都是调用的框架的核心接口。
通过上一篇文章,我们讲解了如何使用EasyUI中的tree、datagrid、linkbutton等常用UI组件、组件的特殊应用方法、数据加载技巧等等。
这一篇文章我们来分享一下使用EasyUI开发的用户管理模块的核心代码,用户管理模块主要是对可登录系统的用户进行管理。
后续的工作如:用户归属角色、权限的分配、用户所拥有的相应功能模块、各业务系统权限的分配等都是以此为基础。
用户管理的主要操作有:新增用户、修改用户、删除用户、设置用户的默认角色、设置用户密码、设置用户的有效性、用户排序等。
在用户管理主界面,有用户管理相应操作权限的登录用户可以添加、修改、删除(单个或批量删除)、设置密码、查询用户。
此模块一般分配给具有系统管理员角色的用户,以防误操作,超级管理员用户不允许被修改与删除。
当然,对于框架核心数据删除操作都是逻辑删除而非物理删除。
即删除是在相应记录上打上了删除标志。
若要恢复误删的数据,可以联系具有操作数据库的用户(如:DBA)进行数据恢复。
用户管理的主界面如下图所示:首先是用户管理的UI界面aspx代码如下:<%@ Page Language="C#"MasterPageFile="~/Site.Master" AutoEventWireup="true"CodeBehind="UserAdmin.aspx.cs"Inherits="erAdmin"%><asp:Content ID="Content2" ContentPlaceHolderID="head" runat="server"> <script src="../Scripts/jquery-checkbox.js" type="text/javascript"></script><script src="../Scripts/date.js" type="text/javascript"></script><script src="../Scripts/jquery-checkbox.js" type="text/javascript"></script><script src="../Scripts/jQuery.Select.js" type="text/javascript"></script><script src="../Scripts/jquery.easyListSplitter.js"type="text/javascript"></script><script src="../Scripts/Business/UserAdmin.js" type="text/javascript"></script><script src="../Scripts/easyui/plugins/jquery.linkbutton.js" type="text/javascript" /></asp:Content><asp:Content ID="Content1" runat="server"contentplaceholderid="ContentPlaceHolder1"><div class="toolbar"><%=base.BuildToolBarButtons() %></div><table id="list" class="scroll" cellpadding="0" cellspacing="0"></table><div id="w"></div><div id="d"></div><script type="text/javascript">var curUserinfo = { "id": <%=erInfo.Id %>, "name":'<%=erInfo.RealName %>', "username":'<%=erName %>' };var varPermission = { "varPermissionAdd": '<%=permissionAdd %>', "varPermissionEdit": '<%=permissionEdit %>', "varPermissionDelete":'<%=permissionDelete %>' };$(function () {$('#a1').linkbutton('disable');});</script></asp:Content>绑定当前登录用户所拥有的功能按钮列表代码如下:///<summary>///获得权限///</summary>private void GetPermission(){this.permissionAdd = this.IsAuthorized("UserManagement.Add");this.permissionEdit = this.IsAuthorized("UserManagement.Edit");this.permissionSetPassword =this.IsAuthorized("UserManagement.SetUserPassword");this.permissionDelete = this.IsAuthorized("UserManagement.Delete");}///<summary>///绑定页面功能按钮列表///</summary>public override string BuildToolBarButtons(){StringBuilder sb = new StringBuilder();string linkbtn_template = "<a id=\"a_{0}\" class=\"easyui-linkbutton\"style=\"float:left\" plain=\"true\" href=\"javascript:;\" icon=\"{1}\" {2}title=\"{3}\">{4}</a>";sb.Append("<a id=\"a_refresh\" class=\"easyui-linkbutton\" style=\"float:left\" plain=\"true\" href=\"javascript:;\" icon=\"icon-reload\" title=\"重新加载\">刷新</a> ");sb.Append("<div class='datagrid-btn-separator'></div> ");sb.Append(string.Format(linkbtn_template, "add", "icon-user_add", permissionAdd ? "" : "disabled=\"True\"", "添加用户", "添加"));sb.Append(string.Format(linkbtn_template, "edit", "icon-user_edit", permissionEdit ? "" : "disabled=\"True\"", "修改用户", "修改"));sb.Append(string.Format(linkbtn_template, "delete", "icon-user_delete", permissionDelete ? "" : "disabled=\"True\"", "删除用户", "删除"));sb.Append("<div class='datagrid-btn-separator'></div> ");sb.Append(string.Format(linkbtn_template, "editpassword", "icon-user_key", permissionSetPassword ? "" : "disabled=\"True\"", "设置选中用户密码", "设置密码"));sb.Append("<div class='datagrid-btn-separator'></div> ");sb.Append(string.Format(linkbtn_template, "export", "icon-user_go", permissionExport ? "" : "disabled=\"True\"", "导出用户数据", "导出"));return sb.ToString();}核心业务逻辑完整JS代码如下:1 $(function () {2grid.bind();3AddUser(); //添加用户4EditUser(); //编辑用户5DeleteUser(); //删除用户6SetUserPassword(); //设置用户密码7$('#a_refresh').click(function () {8$('#list').datagrid('reload');9});1011});1213/* 方法一绑定数据14var initList = function () {15var winSize = { width: $(window).width() - 4, height: $(window).height() - 40 };16$('#list').datagrid({17url: "handler/UserAdminHandler.ashx",18title: "系统用户列表",19iconCls: 'icon icon-list',20width: winSize.width,21height: winSize.height,22nowrap: false, //折行23rownumbers: true, //行号24striped: true, //隔行变色25idField: 'Id', //主键26singleSelect: true, //单选27checkOnSelect: true,28frozenColumns: [[]],29columns: [[30{ title: '主键', field: 'Id', hidden: true },31{ title: '编号', field: 'Code', width: 150 },32{ title: '登录名', field: 'UserName', width: 150, sortable: true }, 33{ title: '用户名', field: 'RealName', width: 150 },34{ title: '部门', field: 'DepartmentName', width: 150 },35{ title: '角色主键', field: 'RoleId', hidden: true },36{ title: '有效', field: 'Enabled', width: 50, formatter: imgcheckbox },37{ title: '邮箱地址', field: 'Email', width: 150 },38{ title: '手机号码', field: 'Mobile', width: 150 },39{ title: '描述', field: 'Description', width: 200 }40]]41});42}43*/4445var grid = {46bind: function () {47var winSize = { width: $(window).width() - 4, height: $(window).height() - 40 };48$('#list').datagrid({49url: "handler/UserAdminHandler.ashx",50title: "系统用户列表",51iconCls: 'icon icon-list',52width: winSize.width,53height: winSize.height,54nowrap: true, //false:折行55rownumbers: true, //行号56striped: true, //隔行变色57idField: 'Id', //主键58singleSelect: true, //单选59checkOnSelect: true,60//frozenColumns: [[]],61columns: [[62{ title: '主键', field: 'Id', hidden: true },63{ title: '编号', field: 'Code', width: 150 },64{ title: '登录名', field: 'UserName', width: 150, sortable: true },65{ title: '用户名', field: 'RealName', width: 150 },66{ title: '部门', field: 'DepartmentName', width: 150 }, 67{ title: '角色主键', field: 'RoleId', hidden: true },68{ title: '有效', field: 'Enabled', width: 50, formatter: imgcheckbox },69{ title: '邮箱地址', field: 'Email', width: 150 },70{ title: '手机号码', field: 'Mobile', width: 150 },71{ title: '描述', field: 'Description', width: 200 },72{ title: 'Enabled', field: 'Enabled', hidden: true },73{ title: 'Gender', field: 'Gender', hidden: true },74{ title: 'UserPassword', field: 'UserPassword', hidden: true },75{ title: 'Birthday', field: 'Birthday', formatter: date2str, hidden: true },76{ title: 'Telephone', field: 'Telephone', width: 200, hidden: true },77{ title: 'Duty', field: 'Duty', hidden: true },78{ title: 'QICQ', field: 'QICQ', hidden: true },79{ title: 'Title', field: 'Title', hidden: true },80{ title: 'RoleId', field: 'RoleId', hidden: true },81{ title: 'CompanyId', field: 'CompanyId', hidden: true }, 82{ title: 'CompanyName', field: 'CompanyName', hidden: true },83{ title: 'DepartmentId', field: 'DepartmentId', hidden: true },84{ title: 'DepartmentName', field: 'DepartmentName', hidden: true },85{ title: 'WorkgroupId', field: 'WorkgroupId', hidden: true },86{ title: 'WorkgroupName', field: 'WorkgroupName', hidden: true },87{ title: 'HomeAddress', field: 'HomeAddress', hidden: true }88]]89});90},91getSelectedRow: function () {92return $('#list').datagrid('getSelected');93}94}9596var imgcheckbox = function (cellvalue, options, rowObject) {97return cellvalue ? '<img src="/css/icon/ok.png" alt="正常" title="正常" />' : '<img src="/css/icon/stop.png" alt="禁用" title="禁用" />';98}99100var date2str = function (cellvalue, options, rowObject) {101if (cellvalue)102return $D(cellvalue).strftime("%Y-%m-%d");103else104return '';105}106107var initUIform = function () {108top.$('#w').hWindow({ html: pform, width: 640, height: 520, title: '添加用户', iconCls: 'icon-add', submit: function () {109var flag = true;110top.$('#uiform input').each(function () {111if ($(this).attr('required') || $(this).attr('validType')) {112if (!top.$(this).validatebox('isValid')) {113flag = false;114return;115}116}117});118119120var vRoleId = top.$('#txtRoleId').combobox('getValue');121var vCompanyId = top.$('#txtCompanyName').combobox('getValue'); 122var vDepartmentId =top.$('#txtDepartmentName').combobox('getValue');123var vWorkgroupId =top.$('#txtWorkgroupName').combobox('getValue');124var vCompanyName =top.$('#txtCompanyName').combobox('getText');125var vDepartmentName =top.$('#txtDepartmentName').combobox('getText');126var vWorkgroupName =top.$('#txtWorkgroupName').combobox('getText');127var queryString = top.$('#uiform').serialize() + '&action=add';128queryString = queryString + '&vRoleId=' + vRoleId +'&vCompanyId=' + vCompanyId + '&vDepartmentId=' + vDepartmentId +'&vWorkgroupId=' + vWorkgroupId;129queryString = queryString + '&vCompanyName=' + vCompanyName + '&vDepartmentName=' + vDepartmentName + '&vWorkgroupName=' + vWorkgroupName;130$.ajaxtext('handler/UserAdminHandler.ashx', queryString, function (msg) {131if (msg == "1") {132top.$('#notity').jnotifyAddMessage({ text: '添加成功.', permanent: false, type: 'message' });133top.$('#w').window('close');134$('#list').datagrid('reload');135}136else if (msg == "0") {137top.$('#notity').jnotifyAddMessage({ text: '用户名已存,请更换用户名.', permanent: false, type: 'warning' });138top.$('#txtUsername').select();139return false;140}141else {142alert(msg);143}144});145146return false;147}148});149150top.$('#uiform input').each(function () {151if ($(this).attr('required') || $(this).attr('validType'))152top.$(this).validatebox();153});154top.$('#txtBirthday').datebox();155}156 //添加用户157var AddUser = function () {158$('#a_add').click(function () {159if ($(this).linkbutton('options').disabled == true) {160return;161}162initUIform();163//绑定各数据字典164pubMethod.bindCategory('txtGender', 'Gender');165pubMethod.bindCategory('txtRoleId', 'null');166pubMethod.bindCategory('txtCompanyName', 'Company');167pubMethod.bindCategory('txtDepartmentName', 'Department');168pubMethod.bindCategory('txtWorkgroupName', 'Workgroup');169top.$('#chkEnabled').attr("checked", true);170top.$('#txtUserName').focus();171top.$('#txtDescription').val("");172});173}174 //修改用户175var EditUser = function () {176$('#a_edit').click(function () {177if ($(this).linkbutton('options').disabled == true) {178return;179}180181var selectRow = grid.getSelectedRow();182if (selectRow != null) {183184if (erName != '' && erName =='Administrator' && ername != 'Administrator') {185$.messager.alert('警告提示', '你不能修改超级管理员用户!', 'warning');186return false;187}188189//弹窗190top.$('#w').hWindow({ html: pform, width: 640, height: 520, title: '修改用户', iconCls: 'icon-edit', submit: function () {191var flag = true;192top.$('#uiform input').each(function () {193if ($(this).attr('required') || $(this).attr('validType')) { 194if (!top.$(this).validatebox('isValid')) {195flag = false;196return;197}198}199});200var vRoleId = top.$('#txtRoleId').combobox('getValue'); 201var vCompanyId =top.$('#txtCompanyName').combobox('getValue');202var vDepartmentId =top.$('#txtDepartmentName').combobox('getValue');203var vWorkgroupId =top.$('#txtWorkgroupName').combobox('getValue');204var vCompanyName =top.$('#txtCompanyName').combobox('getText');205var vDepartmentName =top.$('#txtDepartmentName').combobox('getText');206var vWorkgroupName =top.$('#txtWorkgroupName').combobox('getText');207208var queryString = top.$('#uiform').serialize() +'&action=edit&id=' + selectRow.Id;209queryString = queryString + '&vRoleId=' + vRoleId +'&vCompanyId=' + vCompanyId + '&vDepartmentId=' + vDepartmentId +'&vWorkgroupId=' + vWorkgroupId;210queryString = queryString + '&vCompanyName=' + vCompanyName + '&vDepartmentName=' + vDepartmentName +'&vWorkgroupName=' + vWorkgroupName;211$.ajaxtext('handler/UserAdminHandler.ashx', queryString, function (msg) {212if (msg == "1") {213top.$('#notity').jnotifyAddMessage({ text: '修改成功.', permanent: false, type: 'message' });214top.$('#w').window('close');215$('#list').datagrid('reload');216}217else218alert(msg);219});220221return false;222}223});224225top.$('#uiform input').each(function () {226if ($(this).attr('required') || $(this).attr('validType'))227top.$(this).validatebox();228});229//绑定各数据字典230pubMethod.bindCategory('txtGender', 'Gender');231pubMethod.bindCategory('txtRoleId', 'null');232pubMethod.bindCategory('txtCompanyName', 'Company');233pubMethod.bindCategory('txtDepartmentName', 'Department');234pubMethod.bindCategory('txtWorkgroupName', 'Workgroup'); 235236//初始化相关数据237top.$('#txtUserName').val(erName);238top.$('#txtRealName').val(selectRow.RealName);239top.$('#txtCode').val(selectRow.Code);240top.$('#txtUserPassword').after('******').remove();241top.$('#txtGender').combobox('setValue', selectRow.Gender); 242top.$('#txtMobile').val(selectRow.Mobile);243top.$('#txtBirthday').val(selectRow.Birthday);244top.$('#txtTelephone').val(selectRow.Telephone);245top.$('#txtDuty').val(selectRow.Duty);246top.$('#txtQICQ').val(selectRow.QICQ);247top.$('#txtTitle').val(selectRow.Title);248top.$('#txtEmail').val(selectRow.Email);249top.$('#txtRoleId').combobox('setValue', selectRow.RoleId); 250top.$('#txtCompanyName').combobox('setValue', panyId);251top.$('#txtDepartmentName').combobox('setValue', selectRow.DepartmentId);252top.$('#txtWorkgroupName').combobox('setValue', selectRow.WorkgroupId);253top.$('#txtHomeAddress').val(selectRow.HomeAddress);254top.$('#txtDescription').val(selectRow.Description);255top.$('#chkEnabled').attr("checked", selectRow.Enabled == "1"); 256} else {257top.$('#notity').jnotifyAddMessage({ text: '请选择要修改的用户.', permanent: false, type: 'warning' });258return false;259}260});261}262 //删除用户263var DeleteUser = function () {264$('#a_delete').click(function () {265if ($(this).linkbutton('options').disabled == true) {266return;267}268var selectRow = grid.getSelectedRow();269270if (selectRow) {271if (selectRow.Id != '' && selectRow.Id == curUserinfo.id) { 272$.messager.alert('警告提示', '不能删除当前登录用户!', 'warning');273return false;274}275276if(erName != '' && erName =='Administrator')277{278$.messager.alert('警告提示', '不能删除超级管理员用户!', 'warning');279return false;280}281282$.messager.confirm('询问提示', '确认要删除所选用户吗?', function (data) {283if (data) {284$.ajaxtext('handler/UserAdminHandler.ashx','action=delete&id=' + selectRow.Id, function (msg) {285if (msg == '1') {286$.messager.alert('成功提示', '所选用户删除成功!');287$('#list').datagrid('reload');288} else {289$.messager.alert('错误提示', msg, 'error'); 290}291});292}293});294}295else {296top.$('#notity').jnotifyAddMessage({ text: '请选择要删除的用户。