easyui tree datagrid动态添加表头和表格数据,动态弹出框,修改和删除按钮
1.要有获取表头的URL和表格的URL
背景:点击树的一个节点,就加载一个表格,这个表格是动态的,表头和表格数据都是动态的
解决方案:需要两个URL,一个是获取表头的URL,一个是获取表格数据的URL
$("#tvGy").tree({
			url:"url",
			method:"post",
			onClick:function(node){
				//......
			},
			onSelect:function(node){
				var resultData={
					"flbs":node.id,
					"tbs":node.attributes.tbs
				};
				$.ajax({
					url:"mvc/queryCxzd.html",//查询表头的URL
					type:"post",
					dataType:"json",
					data:{
						flbs:node.id,
						tbs:node.attributes.tbs
					},
					success:function(data1){
						newData=data1;
						var colData=new Array();
						var columnsAll=new Array();
						//如果数据不为空,则添加遍历该数据的集合
						if(data1.length>0){
							var col={};
							col["title"]='id';
							col["field"]='id';
							col["width"]=0;
							col["hidden"]=true;
							colData.push(col);
							for(var i=0;i<data1.length;i++){
								//把返回的数据封装到一个对象中
								var col={};
								col["title"]=data1[i].FBS;
								col["field"]=data1[i].FBS;
								col["width"]=100;
								col["algin"]="cneter";
								//把这个对象添加到列集合中
								colData.push(col);
							}
							var colOper={};
							colOper["title"]="操作";
							colOper["field"]="operation";
							colOper["width"]=60;
							colOper["algin"]="cneter";
							colOper["formatter"]=function(value,rowData,rowIndex){
								var str="<a id='btnEdit' href='javascript:void(0)' onclick='editUser("+rowIndex+")' class='easyui-linkbutton btnsj xgbtnsj' style='text-decration:none;'>修改 </a> <a id='btnDel' href='javascript:void(0)' onclick='deleterow("+rowIndex+") class='easyui-linkbutton btnsj xgbtnsj' style='text-decration:none;''>删除</a>";
								return str;
							};
							colData.push(colOper);
						}
						columnsAll.push(colData);
						var resultJson=Json.stringify(resultData);
						//添加表格数据
						$("#dgdata").datagrid({
							 url:"mvc/queryCxsj.html",
							 loadMsg:"数据加载中...",
							 pagination:true,    //分页
				             pagesize:10,    //每页有10行数据
				             pageList:[10,20,30,40],    //注意这些数值是pagesize的倍数
				             fit:true,
				             fitColumns:false,  //false,表示不会出现横向滚动条;true,则表示能出现横向滚动条(列少的时候用)
				             nowarp:false,  //当表格中某一行的一个列内容较多时,就会自动折行(换下一行显示)
				             border:false,  //去掉datagrid的边框
				             idField:'id',    //自动标记选中的行,换页后,前面所选中的行依然保留
							 columns:columnsAll,
							 queryParams:{
							 	resultData:resultJson
							 }
						});
					}
				});
			}
		});
2.动态弹出框
背景:点击新建按钮,就弹出框,弹出框里面的内容是动态表格里面的数据
解决方案:将表格中数据通过html()这样的方法拼到弹出框里面
var newData="";
//新建按钮弹出框
$("#btnNew").click(function(){
if(newData != ""){
var tbstr="";
for(var i=0;i<newData.length;i++)
{
if(newData[i].SJLX==3)//根据数据不同的类型把html拼到弹出框上去
{
tbstr+="<tr><td style='width:0px;'></td><td style='width:100px;' align='right'>"+newData[i].FBS+"</td><td style='width:200px;'><input id='"+newData[i].FBS+"' class='zydatebox' style='width:200px;height:32px;line-height:32px;' type='text'/></td></tr><tr></tr>";
}else if(newData[i].SJLX==3)
{
tbstr+="<tr><td style='width:0px;'></td><td style='width:100px;' align='right'>"+newData[i].FBS+"</td><td style='width:200px;'><input id='"+newData[i].FBS+"' class='zydatetime' style='width:200px;height:32px;line-height:32px;' type='text'/></td></tr><tr></tr>";
}else{
tbstr+="<tr><td style='width:0px;'></td><td style='width:100px;' align='right'>"+newData[i].FBS+"</td><td style='width:200px;'><input id='"+newData[i].FBS+"' class='easyui-textbox' style='width:200px;height:32px;line-height:32px;' type='text'/></td></tr><tr></tr>";
}
}
//保存和取消按钮
var tbopr="";
tbopr +="<tr><td></td><td></td><td align='center' colspan='2' style='height:40px;'>"+
"<a id='btnCommit' href='javascript:void(0)' class='easyui-linkbutton l-btn' style='color:#fff' onclick='commit()' >保存</a>"+
"<a id='btnCancel' href='javascript:void(0)' class='easyui-linkbutton l-btn' style='color:#fff' onclick='cancel()' >取消</a></td></tr>";
$("#addtr").html(tbstr+tbopr);
$(".zydatebox").datebox();
$(".zydatetime").datetimebox();
}
$("#dlDataInfo").dialog({
width:400,
height:350,
title:"数据信息",
modal:true
});
//弹出框在页面显示的高度
$(".panel.window").css("top","0");
});
3.datagrid中每一行的修改和删除按钮
注意点:要将每一行的id传到修改和删除按钮的函数中
(1)修改按钮
//修改按钮
function editUser(id)
{
var row=$("#dgdata").datagrid("getData").rows[id];
if(newData!=''){
var tbstr='';
//遍历row
for(var i=0;i<newData.length;i++)
{
var zdvalue="";
for(var key in row)
{
if(key==newData[i].FBS)
{
zdvalue=row[key];
}
}
if(newData[i].SJLX==3)//根据数据不同的类型把html拼到弹出框上去
{
tbstr+="<tr><td style='width:0px;'></td><td style='width:100px;' align='right'>"+newData[i].FBS+"</td><td style='width:200px;'><input id='"+newData[i].FBS+"' class='easyui-datebox zydatebox' data-options='formatter:myformatter,parser:myparser' style='width:200px;height:32px;line-height:32px;' type='text'/></td></tr><tr></tr>";
}else if(newData[i].SJLX==3)
{
tbstr+="<tr><td style='width:0px;'></td><td style='width:100px;' align='right'>"+newData[i].FBS+"</td><td style='width:200px;'><input id='"+newData[i].FBS+"' class='easyui-datetimebox zydatetime' data-options='formatter:myformatterTime,parser:dateparser' style='width:200px;height:32px;line-height:32px;' type='text'/></td></tr><tr></tr>";
}else{
tbstr+="<tr><td style='width:0px;'></td><td style='width:100px;' align='right'>"+newData[i].FBS+"</td><td style='width:200px;'><input id='"+newData[i].FBS+"' class='easyui-textbox' style='width:200px;height:32px;line-height:32px;' type='text'/></td></tr><tr></tr>";
}
}
//保存和取消按钮
var tbopr="";
tbopr +="<tr><td></td><td></td><td align='center' colspan='2' style='height:40px;'>"+
"<a id='btnCommit' href='javascript:void(0)' class='easyui-linkbutton l-btn' style='color:#fff' onclick='commitEdit("+id+")' >保存</a>"+
"<a id='btnCancel' href='javascript:void(0)' class='easyui-linkbutton l-btn' style='color:#fff' onclick='cancel()' >取消</a></td></tr>";
$("#addtr").html(tbstr+tbopr);
$(".zydatebox").datebox();
$(".zydatetime").datetimebox(); if(row)//只有选中行才有弹框
{
$("#dlDataInfo").dialog({
width:400,
height:350,
title:"数据信息",
modal:true
});
//弹出框在页面显示的高度
$(".panel.window").css("top","0");
}else{
$.messager.alert("提示","请选择数据进行编辑");
}
}
} //修改按钮保存
function commitEdit(id)
{
var row=$("#dgdata").datagrid("getData").rows[id];
var resultData={
"flbs":flbs,
"tbs":tbs,
"id":row.id,
"zdValue":gerFormJson("#ffDataInfo")
}; $.ajax({
url:"mvc/update.html",
type:"post",
dataType:"json",
data:{
data:JSON.stringify(resultData)
},
success:function(data){
$.messager.alert("提示","请选择数据进行编辑");
}
});
}
(2)删除按钮
//删除按钮
function deleterow(index){
var row=$("#dgdata").datagrid("getData").rows[index];
if(row){//只有选中行的时候才有弹框
$.messager.confirm("删除","确定删除吗?",function(r){
if(r){
$.ajax({
url:"mvc/delete.html",
type:"post",
data:{
data:row.id
},
dataType:"json",
success:function(data){
$("#dgdata").datagrid("reload");
},
error:function(data){
$.messager.alert("连接失败!");
}
});
} });
}
}
(3)form表单格式化为标准json
//form表单格式化为标准json
function gerFormJson(form){
var o={};
var a=$(form).serializeArray();
$.each(a,function(){
if(o[this.name]!=undefined){
if(!o[this.name].push){
o[this.name]=[o[this.name]];
}
o[this.name].push(this.value||"");
}else{
o[this.name]=this.value||"";
} });
return o;
}
easyui tree datagrid动态添加表头和表格数据,动态弹出框,修改和删除按钮的更多相关文章
- js简单显示和隐藏div,触发超链接,动态更改button值,setInterval()简单使用,jquery easyui弹出框简单使用 .
		
js简单显示和隐藏div .<!DOCTYPE html> .<html> .<head> .<meta charset="UTF-8"& ...
 - WPF GridView动态添加项并读取数据
		
假设数据库有如下表, 首先我们创建一个WPF工程,界面如下 <Window x:Class="WpfApplication2.MainWindow" xmlns=" ...
 - 点击datagrid弹出ldhdialog,点击弹出框的按钮,关闭且刷新datagrid
		
datagrid里的js这么写 //点击添加按钮触发 function superadd(title,addurl,gname,width,height) { gridname=gname; crea ...
 - 玩转EasyUi弹出框
		
这两天在搞EasyUi的弹出框,弹出框之前也搞过很多个版本,总是觉得不那么完美,刚好最近有时间,就往多处想了想,功能基本上达到我的预期,并且在开发过程中遇到很多小技巧,特撰文如下. 走起:在EasyU ...
 - 自设table表格,获取内容,并经弹出框的url传参,获取结果显示在弹出框,并加载合计
		
table表格,选择框 form id="editForm1"> <table class="table_form"> <td > ...
 - 弹出框中选项卡的运用(easyUI)
		
先看一下页面效果: 此处有两个知识点:一个是弹出框的运用,一个是选项卡的运用 分析一下该HTML代码,最外面一个div是弹出框的,默认是关闭状态,可通过ID来控制弹出框的开关,该div的样式是easy ...
 - JSP中添加弹出框
		
JSP中添加弹出框 %> <script language="javascript" type="text/javascript"> aler ...
 - elementUI 弹出框添加可自定义拖拽和拉伸功能,并处理边界问题
		
开发完后台管理系统的弹出框模块,被添加拖拽和拉伸功能,看了很多网上成熟的帖子引到项目里总有一点问题,下面是根据自己的需求实现的步骤: 首先在vue项目中创建一个js文件eg:dialog.js imp ...
 - 浅谈js中如何动态添加表头/表列/表格内容
		
我想很多童鞋用js动态向表格中添加数据很熟悉,而且也觉得非常简单!是的,对于写页面的童鞋来说,最喜欢写查询的页面了,动态向表格绑定数据.用for循环就可以轻松搞定. 如果我们的业务需求有所变化,可能我 ...
 
随机推荐
- 微信小程序:点击预览图片
			
在开发微信小程序时,开发人员会参考着小程序api来开发小程序,但有的时候根据情况不同很容易出现bug,以下是我在开发小程序时出现的各种bug,在开发时有需要预览图片. 1.xml <view c ...
 - 解决The Network Adapter could not establish the connection
			
解决1 主机与虚拟机ping不通 解决2 状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection 本次尝 ...
 - System Center Configuration Manager 2016  域准备篇(Part1)
			
本系列指南如何从Microsoft安装最新的Configuration Manager基准版本.较新的可用基准版本System Center Configuration Manager(当前分支)版本 ...
 - Copy Failed Error Access to fobidden
			
使用SVN的branch/tag命令来切包时,报出了一下错误提示 就这个错误,调了整整一天,如果你也遇到了类似问题,我真心希望下面解决问题的过程能帮助到你:D 解决过程: 1.网上查了很多帖子,发现跟 ...
 - Java的几种加载驱动的方法
			
1.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 2.DriverManager.registerD ...
 - ffmpeg 资源[转]
			
http://blog.csdn.net/leixiaohua1020/article/details/15811977 一. FFmpeg主站 1. FFmpeg的源码发布,资料 网址: htt ...
 - Aizu 2170 Marked Ancestor(并查集变形)
			
寻找根节点很容易让人联想到DisjointSet,但是DisjointSet只有合并操作, 所以询问离线倒着考虑,标记会一个一个消除,这时候就变成合并了. 因为询问和查询的时间以及标记生效的时间有关, ...
 - 【洛谷4252】[NOI2006] 聪明的导游(提答题)
			
点此看题面 大致题意: 给你一张\(n\)个点.\(m\)条边的无向图,让你找出图上的一条不经过重复节点的最长路(提答+\(spj\)). 随机化乱搞 针对这种提答题,我们就要用随机化乱搞(Cptra ...
 - 【转】浅谈Node.js单线程模型
			
Node.js采用 事件驱动 和 异步I/O 的方式,实现了一个单线程.高并发的运行时环境,而单线程就意味着同一时间只能做一件事,那么Node.js如何利用单线程来实现高并发和异步I/O?本文将围绕这 ...
 - jQuery Pagination分页插件--刷新
			
源码地址:https://github.com/SeaLee02/FunctionModule/blob/master/UploadFiles/WebDemo/FenYE/FenYeDemo.aspx ...