• 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='0px;'></td><td style='100px;' align='right'>"+newData[i].FBS+"</td><td style='200px;'><input id='"+newData[i].FBS+"' class='zydatebox' style='200px;height:32px;line-height:32px;' type='text'/></td></tr><tr></tr>";
    					}else if(newData[i].SJLX==3)
    					{
    						tbstr+="<tr><td style='0px;'></td><td style='100px;' align='right'>"+newData[i].FBS+"</td><td style='200px;'><input id='"+newData[i].FBS+"' class='zydatetime' style='200px;height:32px;line-height:32px;' type='text'/></td></tr><tr></tr>";
    					}else{
    						tbstr+="<tr><td style='0px;'></td><td style='100px;' align='right'>"+newData[i].FBS+"</td><td style='200px;'><input id='"+newData[i].FBS+"' class='easyui-textbox' style='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({
    				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='0px;'></td><td style='100px;' align='right'>"+newData[i].FBS+"</td><td style='200px;'><input id='"+newData[i].FBS+"' class='easyui-datebox zydatebox' data-options='formatter:myformatter,parser:myparser' style='200px;height:32px;line-height:32px;' type='text'/></td></tr><tr></tr>";
                        }else if(newData[i].SJLX==3)
                        {
                            tbstr+="<tr><td style='0px;'></td><td style='100px;' align='right'>"+newData[i].FBS+"</td><td style='200px;'><input id='"+newData[i].FBS+"' class='easyui-datetimebox zydatetime' data-options='formatter:myformatterTime,parser:dateparser' style='200px;height:32px;line-height:32px;' type='text'/></td></tr><tr></tr>";
                        }else{
                            tbstr+="<tr><td style='0px;'></td><td style='100px;' align='right'>"+newData[i].FBS+"</td><td style='200px;'><input id='"+newData[i].FBS+"' class='easyui-textbox' style='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({
                            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;
            }
  • 相关阅读:
    2013ACM多校联合(1)
    AcDream 1083 完美数 数位DP
    AcDream 1079 郭氏数
    AcDream 1084 同心树 几何
    AcDream 1078 递推数 嵌套循环节+矩阵快速幂
    AcDream 1081 平衡树 Tire树
    ZOJ1455 Schedule Problem 差分约束
    在程序中加载log4net配置,防止其他人看到配置文件
    sqlite错误 The database disk image is malformed database disk image is malformed 可解决
    由于这台计算机没有终端服务器客户端访问许可证,远程会话被中断。请与服务器管理员联系 解决
  • 原文地址:https://www.cnblogs.com/GumpYan/p/7568759.html
Copyright © 2020-2023  润新知