Jquery easy ui datagrid動態加載列問題

原文:Jquery easy ui datagrid動態加載列問題

1.如下图效果是当选择不同的日期范围时datagrid则会加载出对应的列数

 

 

2.首先是后台组装数据,我采用的是循环并拼接DataTable数据,如下代码

          //循環添加datagrid所需的表頭數據
                for (int i = 0; i < table.Columns.Count; i++)
                {
                    columns.AppendFormat("{{field:'{0}',title:'{1}',align:'center',width:{2}}},", table.Columns[i].ColumnName, table.Columns[i].ColumnName, 41);
                }
                //刪除最有一個filed多餘的","號
                if (table.Columns.Count > 0)
                {
                    columns.Remove(columns.Length - 1, 1);
                }
                columns.Append("]]");
                //組裝工令各站排程達成狀況表頭和數據
                Dictionary<string, object> objDic = new Dictionary<string, object>();
                objDic.Add("columns", columns.ToString()); //datagrid表头
                objDic.Add("rows", table); //datagrid表数据          //转换为Json格式
                return Common.JsonHelper.ToJson(objDic)

 

3.取得浏览器所返回的组装后的JSON格式数据,如下

{"columns":"[[{field:'Item',title:'項目',align:'center',width:120},{field:'SumMonth',title:'3月份累計',align:'center',width:70},{field:'03/01',title:'03/01',align:'center',width:41},{field:'03/02',title:'03/02',align:'center',width:41},{field:'03/03',title:'03/03',align:'center',width:41},{field:'03/04',title:'03/04',align:'center',width:41},{field:'03/05',title:'03/05',align:'center',width:41},{field:'03/06',title:'03/06',align:'center',width:41},{field:'03/07',title:'03/07',align:'center',width:41},{field:'03/08',title:'03/08',align:'center',width:41},{field:'03/09',title:'03/09',align:'center',width:41},{field:'03/10',title:'03/10',align:'center',width:41},{field:'03/11',title:'03/11',align:'center',width:41},{field:'03/12',title:'03/12',align:'center',width:41},{field:'03/13',title:'03/13',align:'center',width:41}]]",

"rows":[{"SerailNum":1,"Item":"累計各LOT耗用工時之合(H)","SumMonth":142.00,"03/01":null,"03/02":null,"03/03":null,"03/04":50.00,"03/05":null,"03/06":7.00,"03/07":42.00,"03/08":null,"03/09":null,"03/10":17.00,"03/11":null,"03/12":26.00,"03/13":null},{"SerailNum":2,"Item":"產出LOT批","SumMonth":13.00,"03/01":0.00,"03/02":0.00,"03/03":0.00,"03/04":2.00,"03/05":0.00,"03/06":4.00,"03/07":2.00,"03/08":0.00,"03/09":0.00,"03/10":1.00,"03/11":0.00,"03/12":4.00,"03/13":0.00},{"SerailNum":3,"Item":"平均實際CT","SumMonth":10.92,"03/01":null,"03/02":null,"03/03":null,"03/04":25.00,"03/05":null,"03/06":1.75,"03/07":21.00,"03/08":null,"03/09":null,"03/10":17.00,"03/11":null,"03/12":6.50,"03/13":null}]}

 

4.浏览器端解析数据,并绑定datagrid

            //綁定工令各站排程達成狀況
                    $("#dg_PDL_RealCT").datagrid({
                        width: 'auto',  //寬度
                        height: 'auto',  //高度
                        singleSelect: true, //允許選中一行
                        striped: true, //设置为true将交替显示行背景。
                        rownumbers: true, //顯示行號
                        title: "站別實際CT-日報", //標題
                        iconCls: "icon-save", //圖表
                        collapsible: true, //隱藏按鈕
                        method: "post", //post請求
                        showFooter: true,
                        loadMsg: "數據加載中...", //載入信息時提示內容
                        onLoadError: function () {
                            $.messager.alert('溫馨提示', "加载数据失败!!!");
                        },
                        view: myview,
                        emptyMsg: '沒有檢索到相關數據!'
                    }); //end datagrid

                    //綁定工令各站排程達成狀況表頭
                    $.post("/PI/PDL_RealCT", { "BDate": $("#BDate").datebox('getValue'), "EDate": $("#EDate").datebox('getValue'), "ProcCode": $("#ProcCode").combobox('getValue') }, function (data) {
                        setTimeout(function () {                //将json格式数据转换为js对象
                            var json = eval("(" + data + ")");                //获取datagrid熟悉对象 并为其赋值
                            var opt = $("#dg_PDL_RealCT").datagrid('options');                //为datagrid表头赋值
                            opt.columns = eval(json.columns);
                            $("#dg_PDL_RealCT").datagrid(opt);                //加载datagrid内容
                            $("#dg_PDL_RealCT").datagrid("loadData", json.rows);
                            $.messager.progress('close');
                        }, 1000); //end setTimeout
                    }); //end postgh

 

时间: 2024-10-31 11:33:02

Jquery easy ui datagrid動態加載列問題的相关文章

滑动-jquery easy ui 的 DataGrid 的单元格中添加 ProgressBar 进度条

问题描述 jquery easy ui 的 DataGrid 的单元格中添加 ProgressBar 进度条 jquery easy ui 的 DataGrid 的单元格中添加 ProgressBar 进度条 只显示百分比 没有进度条,而且数数据过多 滑动纵坐标的滚动条时,进度条列不随着方向滑动

JQuery Easy Ui (Tree树)详解(转)

   第一讲:JQuery Easy Ui到底是什么呢? 首先咱们知道JQuery是对Java Script的封装,是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等.. JQuery ui是在jQuery的基础上,利用jQuery的扩展性,设计的插件. 那么JQuery Easy Ui到底是什么呢? 我的理解就是比JQuery ui更强大,同样都是实现绚丽的多功能效果! jQuery Easy UI的目的就是帮助Web开发者更轻松的打造出功能更丰富并且更美观的UI界面. 当然JQue

Jquery easy UI 上中下三栏布局

效果图: 源代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Jquery easy

jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑_jquery

例如"报告交付方式"包含固定交付时,第二个下拉框不可编辑,反之可以编辑,具体代码如下 报告交付方式: <select class="easyui-combobox" panelHeight="auto" style="width:195px" data-options="required:true,valueField:'id',textField:'text' , onSelect:function(){ v

嘎嘎 噶 噶爱国-JQuery easy UI 在国内一般什么样规模的公司使用才会付费呢?

问题描述 JQuery easy UI 在国内一般什么样规模的公司使用才会付费呢? 在国内使用JQuery easy UI付费的单位一般是什么级别的啊?有知道的亲么,说下呗,问题很急,求问答,一旦被采纳,以身相许!!!!!!!!!!!!!!

js-如何删除easy ui datagrid里面的所有的行?

问题描述 如何删除easy ui datagrid里面的所有的行? 我写了一个删除全部但是不好使各位帮我看戏哪里有问题 <script type=""text/javascript""> //删除全部项目 function delAll(){ //获取全部的行 var rows = $('#southTable').datagrid('getRows'); //循环 for(var i=0;i<rows.length;i++){ //获取要删除的索

JQuery easy ui验证在文本框为空时不会触发验证事件,求解决!!!

问题描述 JQuery easy ui验证在文本框为空时不会触发验证事件,求解决!!! JQuery easy ui验证在文本框为空时不会触发验证事件, 用户组: 这里我用JQuery easy ui 生成了一个下拉框,为空时文本框不会触发验证事件 这里是验证的扩展代码: $.extend($.fn.validatebox.defaults.rules, { valiEmp: { //验证用户Id是否有效 validator: function (value, param) { var bl =

jquery easy ui ligerForm 没有file类型如何实现文件上传

问题描述 jquery easy ui ligerForm 没有file类型如何实现文件上传 jquery easy ui ligerForm 没有file类型如何实现文件上传 解决方案 参考:http://www.th7.cn/web/js/201408/54045.shtml 解决方案二: eayui 中有这样的file上传的文件的元素,怎么不用这个那. ' ' +'' +' '; 解决方案三: '<form id="uploadForm" class="easyu

jquery easy ui得到的表格数据后面多出来一列。大神们怎么去掉呀?

问题描述 jquery easy ui得到的表格数据后面多出来一列.大神们怎么去掉呀? 解决方案 fit:true,fitColumns:true <table class="easyui-datagrid" data-options="url:'datagrid_data1.json',fit:true,fitColumns:true">