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循环就可以轻松搞定. 如果我们的业务需求有所变化,可能我 ...
随机推荐
- .net core +mysqlSugar(最为简单的增删改查)
首先建立.net Core API - empty 这个就不说了 然后创建新的Controller 记得添加路由 [Route("api/Users")] 然后在Nuget Pac ...
- cms-详细页面2
详细页面遗留下来的部分: 1:当前位置 2.分享 3.时间格式 4.摘要 5.关键字: 解决方案: 1:当前位置:---后台拼接 2:分享:前端一段js代码 3.摘要,直接数据库查询 4.时间格式:引 ...
- C++ vector类详解
转自http://blog.csdn.net/whz_zb/article/details/6827999 vector简介 vector是STL中最常见的容器,它是一种顺序容器,支持随机访问.vec ...
- firefox 提示 ssl_error_unsupported_version 的解决方法
访问一些HTTPS网站时尤其是国内网站 中文提示: 无法安全地连接 Firefox 无法保证您在 sx.ac.10086.cn 上的数据安全性,因为它使用 SSLv3,一个目前安全性欠佳的安全协议.专 ...
- 2018.10.26 NOIP2018模拟赛 解题报告
得分: \(0+10+10=20\)(\(T1\)死于假题面,\(T3\)死于细节... ...) \(P.S.\)由于原题是图片,所以我没有上传题目描述,只有数据. \(T1\):颜料大乱斗(点此看 ...
- 2018.2.6 JS-判断用户浏览器
JS-判断用户浏览器 在判断用户使用的浏览器是否为PC还是移动设备,有时候项目中需要用到.可在需要的项目中当全局方法来使用. 判断代码 function getMoblieDevice(window) ...
- 2017.12.19 Java包的静态导入import static和import的区别
import static静态导入是JDK1.5中的新特性.一般我们导入一个类都用 import com-..ClassName;而静态导入是这样:import static com-..ClassN ...
- fast rcnn训练自己数据小结
1.http://blog.csdn.net/hao529good/article/details/46544163 我用的训练好的模型参数是data/fast_rcnn__models/vgg_ ...
- 简述apache,php,mysql三者的关系
转自:http://blog.csdn.net/w1365966490/article/details/8218959 Apache web 服务器软件.同类产品有微软的 IIS 等.功能是让某台电脑 ...
- 问题004:如何在windows中打开命令行,有几种方法?
第一种方法:按快捷键 Win+R (run),然后运行框中输入cmd. 第二种方法:开始菜单-->运行-->然后运行框中输入cmd. 第三种方法:在附件当中,找命令行选项即可.