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循环就可以轻松搞定. 如果我们的业务需求有所变化,可能我 ...
随机推荐
- leetcode85 Maximal Rectangle
思路: 分别按行拆分后将这一行之前的每列叠加起来,然后使用leetcode84https://www.cnblogs.com/wangyiming/p/9620942.html的思路计算. 实现: # ...
- rem媒体查询
@media only screen and (min-width: 1080px), only screen and (min-device-width:1080px) { html,body { ...
- oracle数据库,表被锁,如何解锁?
4.批量解锁declare cursor mycur isselect b.sid,b.serial# from v$locked_object a,v$session bwhere a.sessio ...
- 【精华】9张思维导图带你学习Javascript
转自:ChokCoco(http://www.cnblogs.com/coco1s/p/3953653.html) 学习的道路就是要不断的总结归纳,好记性不如烂笔头,so,下面将po出8张javasc ...
- 简单的RelativeLayout布局
简单的RelativeLayout布局实例 <?xml version="1.0" encoding="utf-8"?> <RelativeL ...
- 「转」sqlalchemy 0.9.8 多对多级联删除
转自知乎 http://www.zhihu.com/question/21050551 有 A,B,C,AB,AC五张表 class A(base): __tablename__ = "a& ...
- cmd中不能输入中文
在命令行窗口下不能输入中文,只能输入英文,这是因为cmd.exe窗口启动时并没有启动conime.exe进程.事实上,这个进程容易被后门病毒利用,因此网上很多人都把它当成病毒看待,一些网上下载的系统就 ...
- libav(ffmpeg)简明教程(1)
突然发现又有好久没有写技术blog了,主要原因是最近时间都用来研究libav去了(因为api极类似ffmpeg,虽然出自同一份代码的另外一个分支,因项目选用libav,故下文均用libav代替),其实 ...
- Android(java)学习笔记99:Java虚拟机和Dalvik虚拟机的区别
Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野.它对内存的高效使用,和在低速CPU上表现出的高性能,确实令 ...
- python_50_函数与函数式编程
import time def logger(): """追加写""" time_format='%Y-%m-%d %X'#年-月-日 小时 ...