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动态添加表头和表格数据,动态弹出框,修改和删除按钮的更多相关文章

  1. js简单显示和隐藏div,触发超链接,动态更改button值,setInterval()简单使用,jquery easyui弹出框简单使用 .

    js简单显示和隐藏div .<!DOCTYPE html> .<html> .<head> .<meta charset="UTF-8"& ...

  2. WPF GridView动态添加项并读取数据

    假设数据库有如下表, 首先我们创建一个WPF工程,界面如下 <Window x:Class="WpfApplication2.MainWindow" xmlns=" ...

  3. 点击datagrid弹出ldhdialog,点击弹出框的按钮,关闭且刷新datagrid

    datagrid里的js这么写 //点击添加按钮触发 function superadd(title,addurl,gname,width,height) { gridname=gname; crea ...

  4. 玩转EasyUi弹出框

    这两天在搞EasyUi的弹出框,弹出框之前也搞过很多个版本,总是觉得不那么完美,刚好最近有时间,就往多处想了想,功能基本上达到我的预期,并且在开发过程中遇到很多小技巧,特撰文如下. 走起:在EasyU ...

  5. 自设table表格,获取内容,并经弹出框的url传参,获取结果显示在弹出框,并加载合计

    table表格,选择框 form id="editForm1"> <table class="table_form"> <td > ...

  6. 弹出框中选项卡的运用(easyUI)

    先看一下页面效果: 此处有两个知识点:一个是弹出框的运用,一个是选项卡的运用 分析一下该HTML代码,最外面一个div是弹出框的,默认是关闭状态,可通过ID来控制弹出框的开关,该div的样式是easy ...

  7. JSP中添加弹出框

    JSP中添加弹出框 %> <script language="javascript" type="text/javascript"> aler ...

  8. elementUI 弹出框添加可自定义拖拽和拉伸功能,并处理边界问题

    开发完后台管理系统的弹出框模块,被添加拖拽和拉伸功能,看了很多网上成熟的帖子引到项目里总有一点问题,下面是根据自己的需求实现的步骤: 首先在vue项目中创建一个js文件eg:dialog.js imp ...

  9. 浅谈js中如何动态添加表头/表列/表格内容

    我想很多童鞋用js动态向表格中添加数据很熟悉,而且也觉得非常简单!是的,对于写页面的童鞋来说,最喜欢写查询的页面了,动态向表格绑定数据.用for循环就可以轻松搞定. 如果我们的业务需求有所变化,可能我 ...

随机推荐

  1. 微信小程序:点击预览图片

    在开发微信小程序时,开发人员会参考着小程序api来开发小程序,但有的时候根据情况不同很容易出现bug,以下是我在开发小程序时出现的各种bug,在开发时有需要预览图片. 1.xml <view c ...

  2. 解决The Network Adapter could not establish the connection

    解决1 主机与虚拟机ping不通 解决2 状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection 本次尝 ...

  3. System Center Configuration Manager 2016 域准备篇(Part1)

    本系列指南如何从Microsoft安装最新的Configuration Manager基准版本.较新的可用基准版本System Center Configuration Manager(当前分支)版本 ...

  4. Copy Failed Error Access to fobidden

    使用SVN的branch/tag命令来切包时,报出了一下错误提示 就这个错误,调了整整一天,如果你也遇到了类似问题,我真心希望下面解决问题的过程能帮助到你:D 解决过程: 1.网上查了很多帖子,发现跟 ...

  5. Java的几种加载驱动的方法

    1.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 2.DriverManager.registerD ...

  6. ffmpeg 资源[转]

    http://blog.csdn.net/leixiaohua1020/article/details/15811977 一. FFmpeg主站 1. FFmpeg的源码发布,资料 网址:   htt ...

  7. Aizu 2170 Marked Ancestor(并查集变形)

    寻找根节点很容易让人联想到DisjointSet,但是DisjointSet只有合并操作, 所以询问离线倒着考虑,标记会一个一个消除,这时候就变成合并了. 因为询问和查询的时间以及标记生效的时间有关, ...

  8. 【洛谷4252】[NOI2006] 聪明的导游(提答题)

    点此看题面 大致题意: 给你一张\(n\)个点.\(m\)条边的无向图,让你找出图上的一条不经过重复节点的最长路(提答+\(spj\)). 随机化乱搞 针对这种提答题,我们就要用随机化乱搞(Cptra ...

  9. 【转】浅谈Node.js单线程模型

    Node.js采用 事件驱动 和 异步I/O 的方式,实现了一个单线程.高并发的运行时环境,而单线程就意味着同一时间只能做一件事,那么Node.js如何利用单线程来实现高并发和异步I/O?本文将围绕这 ...

  10. jQuery Pagination分页插件--刷新

    源码地址:https://github.com/SeaLee02/FunctionModule/blob/master/UploadFiles/WebDemo/FenYE/FenYeDemo.aspx ...