- 浏览: 707355 次
- 来自: ...
文章分类
最新评论
-
ranguisheng:
可以加点注释,代码不便于阅读.
用java实现数据库连接池的一个简单示例 -
abcd880129:
这样写的话,还要用专门的下载工具,不然,只能下到一个为空的ex ...
ZK下载文件时,不在服务器生成文件直接下载 -
234369425:
同上,是20
java计算阶乘 -
CodeToMyLaw:
如果目录中含有中文呢?
[^\x00-\xff] 中文的 ...
js验证文件目录格式的正确性 -
yanzhoupuzhang:
加了,还是报那个错误!
org.apache.commons.dbcp.BasicDataSource的解决方法
最近做了一个树状的下拉列表,在这里记录一下,以后可以直接使用
项目中的树状下拉列表是用来选择人员用的,具体实现展示如下:
先说一说功能,左边的人员数是提供选人的,当点击中间的按钮,选中的人员会直接移到右边,如果要删除已选中的人员,只需要双击右边人的姓名即可,点击确定进行集体的业务逻辑操作,一般就是新增人员到某一个表中。
我们再来看看这个DIV的具体代码,由于项目中在多个地方都使用到了这个人员树,所以我把这个DIV抽象出来当作一个公共的jsp页面。如需调用,只需要include这个jsp即可
userTree.jsp:
下面再来看看java后台是如何来查找这个树的,附上后台代码
dao查询方法
对应的xml
最后再附上一个使用实例的 jsp
总结
以上所述是小编给大家介绍的EasyUI创建人员树的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
原文链接:http://www.cnblogs.com/tangyonghui/p/7527085.html
项目中的树状下拉列表是用来选择人员用的,具体实现展示如下:
先说一说功能,左边的人员数是提供选人的,当点击中间的按钮,选中的人员会直接移到右边,如果要删除已选中的人员,只需要双击右边人的姓名即可,点击确定进行集体的业务逻辑操作,一般就是新增人员到某一个表中。
我们再来看看这个DIV的具体代码,由于项目中在多个地方都使用到了这个人员树,所以我把这个DIV抽象出来当作一个公共的jsp页面。如需调用,只需要include这个jsp即可
userTree.jsp:
<%@ page contentType="text/html;charset=utf-8"%> <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="sino" tagdir="/WEB-INF/tags"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> <c:set var="ctx" value="${pageContext.request.contextPath}" /> <!--弹出窗口,人员树必要--> <link href="${ctx}/static/lib/jquery-easyui/themes/default/easyui.css" type="text/css" rel="stylesheet" /> <script src="${ctx}/static/lib/jquery-easyui/jquery.easyui.min.js" type="text/javascript"></script> <style type="text/css"> li:hover { cursor: pointer; } </style> <!-- 模态框弹出设置评估人 --> <div id="groupuser" class="modal fade" aria-hidden="true" data-backdrop="static"> <div class="modal-dialog"> <div class="modal-content"> <input type="hidden" id="ModaltaskLineId" /> <div class="modal-header"> <h4 class="modal-title text-left">请选择评估人</h4> </div> <div class="modal-body"> <div > <div style=" float: left; width: 300px;font-size:15px; "> 待选择人 </div> <div style="float: left; font-size:15px; width: 100px; "> 已选择人 </div> </div> <div> <div id="tt" style="border:1px solid #e4eaf8; float: left; width: 250px; height: 300px; overflow-x: scroll;"> </div> <div align="center" style="float: left; margin-left: 10px; margin-right:10px; height: 150px;margin-top: 150px;"> <button type="button" class="btn-xs btn-primary" onclick="$add()">>></button> </div> <div style="border:1px solid #e4eaf8;width:250px; height: 300px;overflow-x: scroll;"> <ul id="names" style="list-style: none;padding-left:5px;"> </ul> </div> <p></p> </div> <div align="center"> <input class="btn btn-cmcc mr15 " type="button" value="确定" onclick="modelCheckAssessors()"> <input class="btn btn-cmcc mr15" type="button" value="取消" onclick="modalHide()"> </div> <p/> </div> </div> </div> </div> <script type="text/javascript"> //人员数组(longinName) 本项目是已登录名为主键存入,也可存入userID var arr = []; //点击确定的处理逻辑方法名称,调用方法的时候需要设置 var fn = ""; //展示人员树,右边没有默认值 function showTree(groupId) { //查询范围是在groupId这个部门以下的节点部门和人员 //console.log(groupId); $('#tt').tree({ //一般情况下,除了url外,其他参数非必选 //url: contextPath + requestURL,//请求的后台路径 //这里需要注意的是后台url不要指定请求方式为GET方式,否则会报错。 url : CONTEXT_PATH + "/sysmgr/user/chooseAssessorTree?groupId="+groupId, animate : true, //是否需要动画效果 checkbox : 'true', //是否需要checkbox 支持复选 cascadeCheck : 'false',//是否级联选中 onlyLeafCheck : 'true', //是否只有leaf节点有checkbox lines : true,//是否显示线 onClick : function(node) { //点击 /* var leaf = $('#tt').tree("isLeaf", node.target); //判断是否为leaf if(leaf){ arr.push(node.id); } */ $('#tt').tree("toggle", node.target);//点击父节点和点击父节点前面的+号一样能展开 }, onLoadError : function(node, data) { alert("查询不到数据,树形加载失败"); return; }, onCheck : function(node, checked) { if (checked) { //arr.push(node); } else { //arr.remove(node); } } /* onBeforeLoad:function(node,param){ param.screeningTxt = $("#screeningTxt").val(); }*/ }); $("#groupuser").modal("show");//显示模态框, } //接口方法,外面的jsp通过调用这个方法来弹出人员树模态框,且希望只能调用这个方法 //展示人员数,右边有默认值 //参数havaDefault表示是否有默认值,注意,批量设置不能够有默认值 布尔值:true,false //参数loginNameDisplayNameStr是longinName和displayName的组合字符串,例如有三个人:"zhangsan-张三,lisi-李四,wangwu-王五",如果没有默认值,就设置为null //参数method表示方法名称,即你点击确定之后返回的人员的处理方法名称,注意这个方法规定参数只能有一个,那就是人员登陆名的一个字符串,多个人用";"隔开 //参数groupId表示传入到后台的一个参数。在本项目中,由于需要根据条件查询出不同公司/部门下的人员,所以传入了部门ID,若没有,可以为null function showTreeDefault(loginNameDisplayNameStr, method, havaDefault,groupId) { arr = [];//需要设置为全局变量 fn = method; if (!havaDefault) { showTree(groupId); return; } if (loginNameDisplayNameStr!=null) { //alert(loginNameDisplayNameStr); //加载默认值到树的右边边框 var result = loginNameDisplayNameStr.split(","); for (var i = 0; i < result.length; i++) { var user = result[i].split("-"); var loginName = user[0]; var displayName = user[1]; var ul = document.getElementById("names"); var li = document.createElement("li"); li.setAttribute("value", loginName); li.setAttribute("ondblclick", "$remove(this)"); li.innerHTML = displayName; ul.appendChild(li); arr.push(loginName); } } showTree(groupId); } function modelCheckAssessors() { if (arr.length != 0) { //将登录名数组以";"隔开组成一个字符串 var loginNameStr = arr.join(";"); returnVal(loginNameStr); } else { returnVal(null); } } function returnVal(retArr) { //调用处理逻辑方法 window[fn](retArr); //关闭模态框 modalHide(); } function modalHide() { //清空右边li的数据 $('ul li').remove(); $("#groupuser").modal("hide"); } function $add() { var nodes = $('#tt').tree('getChecked'); if (nodes.length != 0) { for (var i = 0; i < nodes.length; i++) { var loginName = nodes[i].id; var userName = nodes[i].text; addEleInMainBox(loginName, userName); $('#tt').tree('uncheck', nodes[i].target);//去掉选中的 } } }; function addEleInMainBox(loginName, userName) { //1.判断当前div中是否已经存在该loginName,如果有重复的则不添加 if (arr.Exists(loginName)) { //alert("已经存在"+loginName+",不再添加"); return; } //2.添加该评估人到li中 var ul = document.getElementById("names"); var li = document.createElement("li"); li.setAttribute("value", loginName); li.setAttribute("ondblclick", "$remove(this)"); li.innerHTML = userName; ul.appendChild(li); arr.push(loginName); } function $remove(obj) { var loginName = obj.getAttribute("value"); obj.parentNode.removeChild(obj); arr.remove(loginName); } Array.prototype.remove = function(val) { var index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } }; Array.prototype.Exists = function(v) { var b = false; for (var i = 0; i < this.length; i++) { if (this[i] == v) { b = true; break; } } return b; }; </script>
下面再来看看java后台是如何来查找这个树的,附上后台代码
//选择评估人-树形结构 @RequestMapping(value = "chooseAssessorTree")//这里不要指定请求方式 public void chooseAssessorTree(HttpServletRequest req,HttpServletResponse res){ //每次点击节点的时候会传入一个节点ID值<br> String id = req.getParameter("id"); //第一次加载树时选择的区域 String groupId = req.getParameter("groupId"); List<Map<String,Object>> list=userService.queryJSAssessor(id,groupId); BuildJSON.printToClient(req, res, arrayBuilder(list)); } //获得树值 private JSONArray arrayBuilder(List<Map<String,Object>> list) { JSONArray arr = new JSONArray(); if (list != null && list.size() > 0) { for (int i=0;i<list.size();i++) { JSONObject obj = new JSONObject(); Map map=list.get(i); String userImg=map.get("userImg").toString(); if (userImg.equals("1")) {//表示到了叶子节点,选择出人 obj.put("id", map.get("loginName")); obj.put("text", map.get("displayName")); obj.put("state", "open"); //obj.put("iconCls", "icon-user2-gj"); }else{ obj.put("id", map.get("groupId")); obj.put("text", map.get("groupName")); obj.put("state", "closed"); } arr.add(obj); } } return arr; }
dao查询方法
/**查询树结构的人员以及部门数据 * @param parentGroupId * @param groupId 第一次加载树查询的 区域 例如是成都分公司,则查询出成都分公司下面的部门以及人员 * @return */ List<Map<String, Object>> queryJSAssessor(@Param("parentGroupId") String parentGroupId, @Param("groupId")String groupId);
对应的xml
<select id="queryJSAssessor" resultType="Map" parameterType="String"> SELECT e.loginName, e.displayName, e.groupId, e.groupCode, e.groupName, e.disOrder, e.userImg FROM (SELECT s.loginName,s.displayName,s.groupId,s.groupCode,s.groupName,s.disOrder,s.userImg FROM (SELECT '0' loginName, '0' displayName, fg.ID groupId, fg.CODE groupCode, fg.NAME groupName, fg.DISPLAY_ORDER disOrder, isnull((select count(id) FROM FND_GROUP where PARENT_ID=fg.ID),0) groupLeaf, (select COUNT(1) from FND_USER_GROUP fug, FND_USER fu where fug.USER_ID = fu.ID and fug.GROUP_ID = fg.ID) userLeaf, 0 userImg FROM FND_GROUP fg WHERE fg.ENABLE_FLAG = 'Y' <if test="parentGroupId != null and '' != parentGroupId"> AND fg.PARENT_ID = #{parentGroupId} </if> <if test="parentGroupId == null or '' == parentGroupId"> <if test="groupId!=null and '' !=groupId"> AND fg.PARENT_ID = #{groupId} </if> <if test="groupId==null or ''==groupId"> AND fg.GROUP_LEVEL = 0 </if> </if> )s WHERE s.groupLeaf>0 OR s.userLeaf>0 UNION ALL SELECT fu.LOGIN_NAME loginName, fu.DISPLAY_NAME displayName, fg.ID groupId, fg.CODE groupCode, fg.NAME groupName, fg.DISPLAY_ORDER disOrder, 1 userImg FROM FND_USER fu LEFT JOIN FND_USER_GROUP fug ON fu.ID=fug.USER_ID LEFT JOIN FND_GROUP fg ON fug.GROUP_ID=fg.ID WHERE fu.ENABLE_FLAG = 'Y' AND fug.PRIMARY_FLAG='Y' AND fg.NAME!='' AND fu.LOGIN_NAME!='' AND fu.DISPLAY_NAME!='' AND fu.MOBILE!='' <if test="parentGroupId != null and '' != parentGroupId"> AND fug.GROUP_ID = #{parentGroupId} </if> <if test="parentGroupId == null or '' == parentGroupId"> <if test="groupId!=null and '' !=groupId"> AND fug.GROUP_ID = #{groupId} </if> <if test="groupId==null or ''==groupId"> AND fg.GROUP_LEVEL = 0 </if> </if> )e ORDER BY userImg, CAST(disOrder AS int) </select> UserDaoMapper.xml
最后再附上一个使用实例的 jsp
<%-- Created by IntelliJ IDEA. User: zht Date: 2017/7/18 Time: 20:36 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=utf-8" %> <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib prefix="sino" tagdir="/WEB-INF/tags" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <c:set var="ctx" value="${pageContext.request.contextPath}"/> <!DOCTYPE html> <html> <head> <title>专项评估 > 任务分发</title> <script src="${ctx}/static/scm/js/commonDialog.js" type="text/javascript"></script> <link href="${ctx}/static/sinoprof/core/css/menu-dropdown.css" type="text/css" rel="stylesheet"/> <script src="${ctx}/static/sinoprof/core/js/namespace.js" type="text/javascript"></script> <script src="${ctx}/static/sinoprof/core/js/lookupDialogRemember.js" type="text/javascript"></script> <script src="${ctx}/static/scm/js/taskEditExcelData.js" type="text/javascript"></script> <script src="${ctx}/static/scm/js/bootstrap-filestyle.js" type="text/javascript"></script> <link href="${ctx}/static/lib/jquery-easyui/themes/default/easyui.css" type="text/css" rel="stylesheet" /> <script src="${ctx}/static/lib/jquery-easyui/jquery.easyui.min.js" type="text/javascript"></script> <sino:sinoflow ctx="${ctx}" SFActInfo="${SFActInfo}"/> <style type="text/css"> .table tbody td:nth-child(1n) { text-align: center; vertical-align: middle; } .mr15 { margin-right: 15px; } </style> </head> <body> <form:form id="appform" name="specialTask" class="form-horizontal" role="form" action="${ctx}/scm/special/distribute/submit" method="post"> <input type="hidden" id="Launch_Code" /> <input type="hidden" id="APPL_COLUMN4"> <input type="hidden" id="loginIds" name="loginIds" > <input type="hidden" id="Launch_Code_Bypass" value="C1"> <input type="hidden" id="groups" name="groups" value="${flowGroups}"> <input type="hidden" id="sf_actID" value="${sf_actID}"> <input type="hidden" id="nextLoginName" value="${nextLoginName}"> <div class="control-group"> <input type="hidden" name="taskId" value="${taskId}"> <input type="hidden" name="taskName" value="${taskName}"> <h2 style="text-align:center">${taskName}</h2> <input type="hidden" id="taskId" value="${taskId}"> <div style="height: 70px"> <div class="pull-right mr15"> <button type="button" class="btn-cmcc" onclick="doSubmit();">任务分发</button> </div> <div class="pull-right mr15"> <button id="cancelBtn" type="button" class="btn-cmcc" onclick="window.location.href='${ctx}/flow/workbench/pendingTray'">关闭</button> </div> </div> <div class="group-header col-xs-12"> <span class="title">本次评估信息</span> <div class="dropdown opts table-opts" data-table="3"> <a class="btn-span" style="color:white" data-action="" onclick="checkAssessors(this,true);">批量设置评分人</a> <a class="btn-span" style="color:white" data-action="" onclick="removeAssessors(this,true);">批量清空评分人</a> </div> </div> <div class="form-group" > <div class="col-md-12"> <table class="col-md-12 table table-striped table-bordered table-hover"> <thead> <tr> <td style="width:3%"><input type="checkbox" id="selectAll" name="selectAll"/></td> <th style="width:4%">序号</th> <th style="width:35%">协议/合同名称</th> <th style="width:23%">评估供应商</th> <th style="width:20%">评估人</th> <th style="width:15%">评估模板</th> </tr> </thead> <tbody> <c:forEach items="${specialTaskLineList}" var="line" varStatus="status"> <tr> <td><input type="checkbox" name="chkItem" value="${line.taskLineSetId}"></td> <th>${status.index+1} <input type="hidden" name="taskLineId" value="${line.taskLineId}"> <input type="hidden" name="taskLineSetId" value="${line.taskLineSetId}"> <input type="hidden" name="objectType" value="${line.objectType}"> </th> <td>${line.contractName}</td> <td>${line.vendorName}</td> <td class="assessorsTd" name="assessorsTd" style="text-align:left; color:#E69500"> <c:if test="${line.userNames !=null}"> <a onclick="checkAssessors(this,false);"style="color:#E69500" > ${line.userNames}</a> <!-- <a onclick="removeAssessors(this,false);" style="">清空</a> --> <input type="hidden" name="userNames" value="${line.userNames}" /> <input type="hidden" class="loginNames" name="loginNames" value="${line.loginNames}" /> <input type="hidden" name="loginNameDisplayNameStr" value="${line.loginNameDisplayNameStr}" /> <input type="hidden" name="flowGroups" value="${line.flowGroups}" /> </c:if> <c:if test="${line.userNames ==null}"> <a onclick='checkAssessors(this,false);' style='color: red'>设置评估人</a> </c:if> </td> <td> <a href="##" onclick="showIndicatorsDetail(this)">${line.templetName}</a></td> </tr> </c:forEach> </tbody> </table> </div> </div> </div> </form:form> <jsp:include page="/WEB-INF/views/workflow/workbench/userTree.jsp" /> <%-- <%@ include file="../../../../static/scm/userTree.jsp"%> --%> <script type="text/javascript"> $(function () { //全选、取消全选的事件 $("#selectAll").click(function () { $("input[name='chkItem']").prop("checked", this.checked); }); }); function assessorsValidate(){ var flag=true; $(".assessorsTd").each(function(){ var validateMedium=$(this).find("input[name='loginNames']").val(); if(!validateMedium){ flag=false; msgAlert("评估人未设置"); return false; } }); return flag; } function do_Validate_Save() {//流程“暂存”前由流程引擎自动调用,如果该函数返回false,流程引擎中止“暂存”操作 if ($("#appform").valid()&&assessorsValidate()) { return true; }else{ return false; } } //提交数据 function doSubmit() { var companyId = $("#companyId").val(); if(companyId =="00"){ $("#Launch_Code").val("B"); }else { $("#Launch_Code").val("A"); } if (do_Validate_Save()){ var assessors=new Array(); $('.loginNames').each(function(index){ var arrayEach=($(this).val()).split(","); for(var i=0;i<arrayEach.length;i++){ if(assessors.indexOf(arrayEach[i])<0){ assessors.push(arrayEach[i]); } } }); assessors=assessors.join(";"); if($("#nextLoginName").val()){ $("#loginIds").val($("#nextLoginName").val()); }else { $("#loginIds").val(assessors); } if(checkAppraiser()){ do_Div_Complete_Start(); }else { msgAlert("存在指标评估人为空"); } } } function checkAppraiser(){ var flag = true; var taskId = $("#taskId").val(); $.ajax({ url:"${ctx}/scm/special/distribute/checkAppraiser", type:"post", dataType:"json", async:false, data:{"taskId":taskId}, success:function(result){ if(result>0){ flag = false; } } }); return flag; } //选择评估人 function checkAssessors(obj,flag) { if(flag&& $("input[name='chkItem']:checked").length == 0){ msgAlert("请选择要设置的行。"); return; } arr = [];//需要设置为全局变量 var method="dealMethod"; if(!flag){ var taskLineSetId = $(obj).parents("tr").find("input[name='taskLineSetId']").val(); //这里的ModaltaskId为模态框里面的id值,表示需要修改的行,该列表示可以传递的参数 $("#ModaltaskLineId").val(taskLineSetId); //获取评估人信息loginName和displayNameStr(默认值) var loginNameDisplayNameStr = $(obj).parents("tr").find("input[name='loginNameDisplayNameStr']").val(); showTreeDefault(loginNameDisplayNameStr,method,true); } //批量设置评估人 else{ var check = $("input[name='chkItem']:checked"); var taskLineIdStr=""; check.each(function (index) { if(index==0){ taskLineIdStr=$(this).val(); }else{ taskLineIdStr+=","+$(this).val(); } }); $("#ModaltaskLineId").val(taskLineIdStr); showTreeDefault(null,method,false); } } //判断是否是批量设置评估人,如果是批量,循环处理(本方法也是模态框处理方法) function dealMethod(loginNames){ if(loginNames==null){ alert("评估人不能为空,设置失败!"); return ; } var taskLineSetIdStr = $("#ModaltaskLineId").val(); $.commonDialog.showProgress('${ctx}', '正在设置评估人,请稍候...'); saveAppraiser(taskLineSetIdStr,loginNames); } function saveAppraiser(taskLineSetIdStr,loginNames) { $.ajax({ url:"${ctx}/scm/special/distribute/saveAppraiser", type:"post", dataType:"json", async:false, data:{"taskLineSetIdStr":taskLineSetIdStr,"loginNames":loginNames}, success:function(result){ window.location.reload(); } }); } function removeAssessors(obj,flag) { if(flag&& $("input[name='chkItem']:checked").length == 0){ msgAlert("请选择要设置的行。"); return; } msgConfirm("是否确认清空?", function () { $.commonDialog.showProgress('${ctx}', '正在删除,请稍候...'); $("#nextLoginName").val(""); if(flag){ $("input[name='chkItem']:checked").each(function () { removepeople($(this).parents("tr").find("td input[name ='loginNames']")); }); }else { removepeople(obj); } window.location.reload(); // $.commonDialog.hiddenProgress(); } ); } function removepeople(obj) { var taskLineSetId = $(obj).parents("tr").find("th input[name=taskLineSetId]").val(); $.ajax({ url:"${ctx}/scm/special/distribute/delAppraiser", type:"post", dataType:"json", async:false, data:{"taskLineSetId":taskLineSetId}, success:function(result){ // if(result =='Y'){ // $(obj).parent("td") .html("<a onclick='checkAssessors(this,false);' style='color: red'>设置评估人</a>"); // } } }); } function showIndicatorsDetail(obj) { var loginNames = $(obj).parents("tr").find("td input[name=loginNames]").val(); var taskLineId = $(obj).parents("tr").find("th input[name=taskLineId]").val(); var objectType = $(obj).parents("tr").find("th input[name=objectType]").val(); var sf_actID = $("#sf_actID").val(); if(loginNames){ window.location.href= "${ctx}/scm/special/distribute/indicatorsEdit?taskLineId="+taskLineId+"&objectType="+objectType+"&sf_actID="+sf_actID; }else { msgAlert("请先设置评估人!"); } } </script> </body> </html> distributeEdit.jsp
总结
以上所述是小编给大家介绍的EasyUI创建人员树的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
原文链接:http://www.cnblogs.com/tangyonghui/p/7527085.html
发表评论
-
easyui+ztree后台管理系统模板
2017-12-30 21:14 552index.html <!DOCTYPE html& ... -
jQuery中$.ajax()和$.getJson()同步处理详解
2017-10-02 14:32 379这篇文章主要介绍了jQue ... -
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2017-10-02 14:17 315本文重点是来讲讲jQuery中调用ajax的4种方法:$.ge ... -
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2017-10-02 12:29 442本文是对Jquery中$.get(),$.post(),$.a ... -
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
2017-10-02 12:11 290通过JQuery可以跨域获取J ... -
jquery实现textarea发布框限制文字字数输入(添加中文识别)
2017-09-28 23:36 512<script type="text/ ... -
jquery实现textarea输入框限制字数的方法
2017-09-28 23:35 484本文实例讲述了jquery实现textarea输入框限制字数的 ... -
jquery如何判断checkbox(复选框)是否被选中
2015-06-13 22:17 740谁都知道 在html 如果一个复选框被选中 是 checked ... -
利用jQuery简单实现CheckBox全选效果
2015-05-28 20:43 727<!DOCTYPE html> <ht ... -
JQuery 发送Json格式数据
2015-05-23 14:06 640简述: 需要封装一组Json格式的数据到服务器 知识点: ... -
jQuery JSONP跨域
2014-01-11 08:36 845String result=request.getPara ... -
jQuery AJAX 分页插件
2013-12-23 08:37 560<!DOCTYPE html PUBLIC &quo ... -
jQuery表格自动增加
2013-12-23 08:32 679<!DOCTYPE html> <ht ... -
juery 插件使用
2013-07-27 17:49 891<!DOCTYPE html PUBLIC &quo ... -
jquery 开发ajax
2013-07-27 17:27 1139<%@ Page Language="C# ... -
jquery 功能函数
2013-07-26 23:10 820<!DOCTYPE html PUBLIC &quo ... -
jquery 动画特效
2013-07-26 22:55 1550<!DOCTYPE html PUBLIC &quo ... -
jquery控制页面
2013-07-21 22:59 944<!DOCTYPE html PUBLIC &quo ... -
jquery基础
2013-07-21 21:41 1069<!DOCTYPE html PUBLIC &quo ... -
JQuery 获取和设置Select选项的代码
2012-11-17 14:01 973获取Select : 获取select 选中的 text : ...
相关推荐
在这个“easyui 三层架构实例”中,我们将探讨如何结合传统的三层架构模式来构建一个实际的 Web 应用。 **一、三层架构** 三层架构是一种常见的软件设计模式,将应用程序分为三个主要部分:表现层(Presentation ...
综上所述,这个实例代码为我们展示了如何利用 jQuery EasyUI 创建一个具有拖放功能的电商购物车系统,通过交互式的操作,让用户能够直观地添加商品并查看购物车总价,是学习和理解前端开发中交互设计和动态计算的一...
通过分析这些实例,你可以学习到如何配置和使用 EasyUI 组件,如何创建复杂的布局结构,以及如何与后端数据进行交互。同时,还可以了解到如何自定义样式,实现与后端服务的对接,以及处理用户交互事件。这些实例将有...
在本实例中,这些截图可能包含了使用 EasyUI 创建的管理界面、数据表格、表单输入等元素,展示了如何利用 EasyUI 的组件进行交互设计。 `readme.txt` 文件通常是项目中提供指南或说明的文字文件,可能包含了安装...
【标题】"EasyUI Sypro代码实例"是一个针对初学者的、完整的系统代码示例,它结合了EasyUI、Sypro、SSH(Struts2、Spring、Hibernate)以及JQuery等技术,为开发者提供了一个全面的学习平台。EasyUI是基于jQuery的...
- **基本使用**: 压缩包中的实例代码展示了如何引入jQuery和jQuery EasyUI库,以及如何创建和使用基本组件。 - **复杂应用场景**: 包含了多页面、多组件交互的实例,如表单提交、数据网格动态加载等。 - **自定义...
EasyUI 是一个基于 jQuery 的 UI 框架,它提供了丰富的组件,包括表格(DataGrid)等,使得 Web 应用程序的界面开发更加便捷。...这个实例对于开发人员来说是一个很好的参考,有助于他们在自己的项目中实现类似的功能。
这个实例代码集合是某位开发者在学习 EasyUI 过程中编写的,旨在帮助他人理解和掌握 EasyUI 的核心功能和用法。下面将详细阐述 EasyUI 的主要特性和这些实例代码可能涵盖的知识点。 1. **EasyUI 的基本概念** - **...
1. **组件丰富**:EasyUI 提供了诸如数据网格、表单、树形视图、布局、对话框、菜单、提示等丰富的组件,可以快速构建功能完善的 web 应用界面。 2. **响应式设计**:EasyUI 支持响应式布局,能够适应不同设备的...
此外,EasyUI 的文档齐全,提供详细的 API 参考和示例代码,方便开发者学习和使用。 通过这个"easyUI框架页面实例",你可以直接将这些已经设计好的页面导入到你的 Web 项目中,根据需求进行适当的修改和定制。这...
1. **组件库**:EasyUI 提供了多种组件,如对话框(dialog)、表格(datagrid)、表单(form)、菜单(menu)、树形视图(tree)、下拉选择框(combobox)、滑块(slider)等,这些组件都封装了丰富的功能,能适应...
总之,这个实例代码将展示如何利用jQuery EasyUI的强大功能创建一个交互式的购物车体验,包括拖放操作、数据管理和用户反馈。通过研究和实现这个实例,开发者可以加深对jQuery EasyUI的理解,并将其应用到更多的项目...
本实例探讨的是如何将轻量级的前端库EasyUI与Microsoft的MVC(Model-View-Controller)框架结合使用,以创建一个Asp.net Web应用程序。EasyUI为开发者提供了丰富的组件和简洁的API,而MVC则是一种设计模式,它帮助...
EasyUI 提供了一系列预定义的 CSS 样式和 JavaScript 插件,使得开发者可以快速地创建出美观且功能丰富的用户界面,而无需从零开始编写大量的样式代码。它的主要组件包括布局、窗口、表单、菜单、按钮、表格等,涵盖...
Java EasyUI是一个基于jQuery的轻...本实例将详细探讨如何在Java应用中使用EasyUI实现即时消息框。 首先,你需要在HTML页面中引入EasyUI的CSS和JavaScript库。这通常通过在`<head>`标签内添加以下代码完成: ```html ...
通过使用 EasyUI,开发者无需编写大量的 CSS 和 JavaScript 代码,就能创建出美观且功能丰富的 Web 应用。 在提供的教程文档 "jQuery_EasyUI教程.doc" 中,你将找到关于如何使用 EasyUI 的基础教程。这可能包括如何...
EasyUI 提供了一套完整的 UI 组件,包括表格、表单、对话框、菜单、树形控件等,大大简化了前端开发的工作。 ### EasyUI 的核心特性 1. **轻量级**:EasyUI 基于 jQuery,本身体积小巧,加载速度快,对于性能要求...
这个压缩包文件“jQueryEasyUI应用实例代码以及api”很可能是包含了一些jQuery EasyUI的示例代码和API文档,帮助我们深入理解和使用这个框架。 首先,jQuery EasyUI 的核心是基于 jQuery,所以理解 jQuery 的基本...