easyUI学习记录

Datetimebox 修改默认格式,以及初始值
<span style="margin-right:5px;">日期</span>
                        <input id="dtStart" type="text">
                         
$('#dtStart').datetimebox({
                required: true,
                showSeconds: false,
                formatter: function (date) {
                    var year = date.getFullYear();
                    var month = date.getMonth() + 1;
                    var day = date.getDate();
                    var hour = date.getHours();
                    var min = date.getMinutes();
                    var sec = date.getSeconds();
                    month = month < 10 ? '0' + month : month;
                    day = day < 10 ? '0' + day : day;
                    hour = hour < 10 ? '0' + hour : hour;
                    min = min < 10 ? '0' + min : min;
                    sec = sec < 10 ? '0' + sec : sec;
                    return year + "-" + month + "-" + day + " " + hour+":"+min+":"+sec;
                },
                parser:function (s) {
                    var t = Date.parse(s);
                    if (!isNaN(t)){
                        return new Date(t);
                    } else {
                        return new Date(s);
                    }
                }
            });
            $('#dtEnd').datetimebox({
                required: true,
                showSeconds: false,
                formatter: function (date) {
                    var year = date.getFullYear();
                    var month = date.getMonth() + 1;
                    var day = date.getDate();
                    var hour = date.getHours();
                    var min = date.getMinutes();
                    var sec = date.getSeconds();
                    month = month < 10 ? '0' + month : month;
                    day = day < 10 ? '0' + day : day;
                    hour = hour < 10 ? '0' + hour : hour;
                    min = min < 10 ? '0' + min : min;
                    sec = sec < 10 ? '0' + sec : sec;
                    return year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + sec;
                },
                parser: function (s) {
                    var t = Date.parse(s);
                    if (!isNaN(t)) {
                        return new Date(t);
                    } else {
                        return new Date(s);
                    }
                }
            });
            var yesday = new Date();
            yesday.setDate((new Date()).getDate() - 1);
            yesday.setHours(7);
            yesday.setMinutes(50);
            yesday.setSeconds(0);
            var today = new Date();
            today.setHours(7);
            today.setMinutes(49);
            today.setSeconds(0);
            $("#dtStart").datetimebox('setValue', yesday);
            $("#dtEnd").datetimebox('setValue', today);






Layout模板 (上下两块示例)
 
<body class="easyui-layout" style="margin:10px;">
    <div  data-options="region:'north',hideCollapsedContent:false" split="true" title="查詢條件" style="height:25%;">
    </div>
    <div id="content" region="center" title="查詢結果" style="padding:1px;width:100%;height:100%;">
    </div>   
</body>
//region 是上半部分与主界面的方位,这边是放在上面
hideCollapsedContent为true时隐藏折叠面板上的标题栏


新增自定义icon图标
<a id="outexcel" class="easyui-linkbutton" data-options="iconCls:'icon-excel'">導出</a>
1、	找到一张图片,缩小剪切到16*16
2、	在EasyUI/themes/icon.css中新增 样式 即可
.icon-excel{
	background:url('icons/excel.png') no-repeat center center;
}


Tabs多个页签
<div id="tt"  style="width:100%;height:100%;">
            <div title="生產報廢統計明細" style="padding:5px;">
                <table id="details"></table>
            </div>
            <div title="生產報廢統計工站匯總" style="padding:5px;">
                <table id="count"></table>
            </div>
        </div>
 
$('#tt').tabs({
                border: false,
                onSelect: function (title) {// 选中时出发事件
                    //alert(title + ' is selected');
                }
            });

在layout主界面中,新增datagrid显示
<div title="生產報廢統計明細" style="padding:5px;">
                <table id="details"></table>
            </div>
$('#count').datagrid({
                url: '../ProductScrapAnalysis/GetGridSummaryData',
                fit: true, //标题栏固定,但是需要设置上一级的 width hight
                pagination: true,  //顯示分頁功能
                singleSelect: true, //單選
                remoteSort: false,  //设置列排序就将remoteSort设置为false
                pageSize: 50,  //还有属性可以设定size范围
                rownumbers: true, //显示行号
                striped: true, //隔行显示不同条纹
                loadMsg: "正在拼命加載中。。。。",
                //rowStyler: function(index,row){   //根據數據,設定行 的style
                //    if (row.SUMAHSTRIPQTY > 4 && row.SUMAHSTRIPQTY < 10) {
                //        return 'background-color:pink;color:blue;'; // return inline style
                //        // the function can return predefined css class and inline style
                //        // return {class:'r1', style:{'color:#fff'}};	
                //    }
                //},
                //loadFilter:function(data)//過濾原始數據,不過需要返回含有total和rows的對象
                //{
                //    console.log(data);
                //    var value = {
                //        total: 0,
                //        rows: []
                //    };
                //    data.rows.forEach(function (item) {
                //        if (Number(item.SUMAHPNLQTY) > 0 && Number(item.SUMAHPNLQTY) < 6) {
                //            value.rows.push(item);
                //            value.total++;
                //        }
                //    });
                //    return value;
                //},
                //loader:   通常和ajax一起用 ,url聽說會覆蓋datagrid 的URL屬性
                columns: [[// halign 显示标题的位置  align  显示内容的位置  ,一般标题居中,文字靠左,数字靠右
                    { field: 'FACTORYNAME', title: '廠別', width: 120, halign: 'center' },
                    { field: 'AHSPECCODE', title: '工站代碼', width: 100, halign: 'center' },
                    { field: 'SPECNAME', title: '工站名稱', width: 100, align: 'left', halign: 'center' },
                    { field: 'SUMAHSTRIPQTY', title: '報廢條數匯總', width: 100, align: 'right', sortable: 'true' },
                    { field: 'SUMQTY', title: '報廢PCS數匯總', width: 100, align: 'right', sortable: 'true' },
                    {
                        field: 'SUMAHPNLQTY', title: '報廢PNL數匯總', width: 100, align: 'right', sortable: 'true'
                        //  ,styler: function (value, row, index) {  // 根據單元格的數據,設定單元格的 style
                        //    if (value < 10) {
                        //        return 'background-color:#ffee00;color:red;';
                        //        // the function can return predefined css class and inline style
                        //        // return {class:'c1',style:'color:red'}
                        //    }
                        //}
                    },
                ]],
                ExportFileName: '生產報廢統計工站匯總', //自定义属性可以通过$(“#dg”).datagrid(""options"").ExportUrl 获得
                onLoadSuccess: function (data) { $(this).datagrid('options').SqlCmdStr = data.SqlCmd; },// 加载成功时获得 URL、回传数据的属性
                onRowContextMenu: function (e, index, row) { e.preventDefault(); $(this).datagrid('ShowGridMenu', e) }, //右鍵導出Excel
                ExportUrl: '../ProductScrapAnalysis/ExportData'
            });
获取datagrid 自定义属性
OwnFileName: '生產報廢統計明細',
                onLoadSuccess: function (data) {
options	 	返回属性对象(datagrid属性,不是列属性)。
                    //$(this).datagrid('options').Ownsql = data.SqlCmd;

                    console.log(data); //{ total:   rows: }  回传的值还可以封装其他属性
                },
                onRowContextMenu: function (e, index, row) {
                    //e.preventDefault(); $(this).datagrid('ShowGridMenu', e)
                    e.preventDefault();
                    console.log($(this).datagrid("options").OwnFileName);
JQuery 自定义方法
$.extend({
    max: function (a, b) { if (a < b) return b; return a; }
});
或者
$.max2 = function (a, b) { if (a > b) return b; return a; };

DataGrid主要有几类属性或者方法
数据网格(DataGrid)属性
比如 
1.	$('#dg').datagrid({
2.		toolbar: '#tb'
3.	});
$("#dg").datagrid({
                url: '../TestDatagridProperty/getData',
                fit: true,
                //title: '生產報廢統計明細',
                pagination: true,  //顯示分頁功能
                singleSelect: true, //單選
                remoteSort: false,  //设置列排序就将remoteSort设置为false
列(Column)属性
是网格属性column的属性
columns: [[
                    { field: 'id', title: 'id', width: 120, halign: 'center' },
                    { field: 'name', title: '名稱', width: 100, halign: 'center' }
                ]],
事件 与 网格属性并列
columns: [[
                    { field: 'id', title: 'id', width: 120, halign: 'center' },
                    { field: 'name', title: '名稱', width: 100, halign: 'center' }
                ]],
                OwnFileName: '生產報廢統計明細',
                onLoadSuccess: function (data) {
                    //$(this).datagrid('options').Ownsql = data.SqlCmd;
                    console.log(data); //{ total:   rows: }  回传的值还可以封装其他属性
                },
                onRowContextMenu: function (e, index, row) {
                    //e.preventDefault(); $(this).datagrid('ShowGridMenu', e)
                    e.preventDefault();
                    console.log($(this).datagrid("options").OwnFileName);

                }, //右鍵導出Exce
方法  第一个参数是方法名,后面是参数
1.	$('#dg').datagrid('reloadFooter',[
2.		{name: 'name1', salary: 60000},
3.		{name: 'name2', salary: 65000}
4.	]);
扩展控件方法
$.extend($.fn.datagrid.methods, {
    showdata: function (jq, e) {//测试easyUI自定义方法会自动传递对象本身
        console.log(jq.datagrid("options").OwnFileName);
        console.log("--------------------");
        console.log(e);
    }
}); 
自定义扩展方法,会自动传递对象本身 类似于  $(“”)
在事件中调用
onRowContextMenu: function (e, index, row) {
                    e.preventDefault(); $(this).datagrid('showdata', e)
                }
只需要传递后一个参数即可



已经封装好的一个DataGrid下载文件的方法
前端
ExportFileName: '生產報廢統計明細',
                onLoadSuccess: function (data) { $(this).datagrid('options').SqlCmdStr = data.SqlCmd; },//加载时data属性sql赋给 datagrid
                onRowContextMenu: function (e, index, row) { e.preventDefault(); $(this).datagrid('ShowGridMenu', e) }, //右鍵導出Excel
                ExportUrl: '../ProductScrapAnalysis/ExportData'
JS中扩展datagrid自定义方法'ShowGridMenu'
@"(function ($) {
                        //DataGrid右鍵菜單導出
                        $.extend($.fn.datagrid.methods, {
                                ShowGridMenu: function (jq, e) {
                            ShowGridMenu(e,jq);
                            }
                            });
                        //DataGrid Edit Module                            
                        $.extend($.fn.datagrid.methods, {
                            EditModule: function (jq, e) {
                                _EditDataGrid(jq,e);
                            }
                        });
                        //取得Form方法
                        $.extend($.fn.form.methods, {
                            GetDatas: function (Frm, e) {
                               return _GetFormData(Frm,e);
                            }
                        });
                    })(jQuery);";

封装JS方法ShowGridMenu
@"function ShowGridMenu(e,dg)
                        {
                            var MenuTemp = $('#DataGridMenuTemp');

                            //產生菜單內容
                            if(!$('#DataGridMenuTemp').length)
                            {
                                $('body').append('<div id=""DataGridMenuTemp"" style=\""width:120px;\"">'+
                                '<div id=""DataGridExportExcel"">導出Excel</div>'+
                                '</div>');
                                $('#DataGridMenuTemp').menu({});
                            }

                            $('#DataGridMenuTemp').menu('show', { left: e.pageX, top: e.pageY });//顯示菜單

                            //Excel導出實作
                            $(""#DataGridExportExcel"").click(function () {
                            var Url ='';
                            if(dg.datagrid(""options"").ExportUrl == null)
                            {
                                Url = dg.datagrid(""options"").url;
                                var ExportUrl = dg.datagrid(""options"").url.split('/');
                                Url = Url.replace(ExportUrl[ExportUrl.length - 1], 'ExportData');
                            }
                            else
                            {
                                Url=dg.datagrid(""options"").ExportUrl;
                            }

                         

                            var d = new Date();
                            var FileName;

                            if (dg.datagrid(""options"").ExportFileName == '') {
                                FileName = 'ExcelExport';
                            } else {
                                FileName = dg.datagrid(""options"").ExportFileName;
                            }
                            
                            //若SqlCmd內有<、>符號後連接英文字體未空隔,會被視為Html標籤,此處強制在符號前後加空隔
                            var SqlCmd = dg.datagrid(""options"").SqlCmdStr;
                            SqlCmd=SqlCmd.replace('<',' < ');
                            SqlCmd=SqlCmd.replace('>',' > ');

                            $.download(Url, {
                                SqlCmd: SqlCmd, //查詢語句
                                Columns: GetDataGridColumns(dg), //取得欄位名稱傳送至後台
                                FileName: FileName + '.xls'//導出檔名
                            })
                            })
                
                    }";
封装JQuery扩展方法
"$.download = function (url, data) {" +
                     "if (url && data) {" +
                         "var form = $('<form></form>');" +
                         "form.attr('action', url + (url.indexOf(\"?\") != -1 ? \"&\" : \"?\") + \"rand=\" + Math.random());" +
                         "form.attr('method', 'post');" +
                         "for (var item in data) {" +
                             "var input = $('<input type=\"hidden\" />');" +
                             "input.attr('name', item);" +
                             "input.attr('value', data[item]);" +
                             "form.append(input);" +
                         "}" +
                         "form.appendTo('body').submit().remove();" +
                     "};};";
后台
public ActionResult ExportData(string SqlCmd, string Columns, string FileName)
        {
            try
            {
                var Data = db.ExecuteDataTable(SqlCmd);
                return File(Data.ToExcelStream(Columns), "application/vnd.ms-excel", FileName);//回傳檔案
            }
            catch (Exception ex)
            {

                return Json(new { Result = false, Msx = ex.Message });
            }
        }
public static byte[] ToExcelStream(this DataTable dt, string Column)
        {
            HSSFWorkbook hssfworkbook = new HSSFWorkbook();
            ISheet sheet = hssfworkbook.CreateSheet("Sheet1");

            //表头
            IRow row = sheet.CreateRow(0);


            string[] Columns = Column.Split(',');
            int c = 0;
            foreach (string col in Columns)
            {
                ICell cell = row.CreateCell(c);
                cell.SetCellValue(col);
                c++;
            }

            //数据
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                IRow row1 = sheet.CreateRow(i + 1);
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    ICell cell = row1.CreateCell(j);
                    cell.SetCellValue(dt.Rows[i][j].ToString());
                }
            }

            //转为字节数组
            MemoryStream stream = new MemoryStream();
            hssfworkbook.Write(stream);

            return stream.ToArray();
        }


Combobox 相关级联效果
   $('.factory:eq(0)').combobox({
        url: '../EQPStatusDuration/getFactory',
        valueField: 'text',
        textField: 'text',
        editable: false,
        panelWidth: '130px',
        onLoadSuccess: function ()
        {
            let _this = this;
            $.ajax({
                url: "../EQPStatusDuration/getWORKCENTER",
                type: "post",
                contentType: "application/x-www-form-urlencoded; ", //默认,表单提交格式
                dataType: "json",
                data: {factoryname:$(_this).combobox('getValue')},
                success: function (data,status) {
                    $(".lineType:eq(0)").combobox('loadData', data);
                },
                error:function (data,status)
                {
                    alert(status);
                }
            });
        }
    });
    //$('.factory').combobox('select',0);
    $(".lineType:eq(0)").combobox({
        //url: '../SpeedCountBYS/getWORKCENTER',
        valueField: 'text',
        textField: 'text',
        panelWidth: '160px',
        onChange: function () {
            let _this = this;
            $.ajax({
                url: "../EQPStatusDuration/getOPERATION",
                type: "post",
                contentType: "application/x-www-form-urlencoded; ", //默认,表单提交格式
                dataType: "json",
                data: { factoryname: $('.factory:eq(0)').combobox('getValue'), lineType: $(_this).combobox('getValue') },
                success: function (data, status) {
                    $(".partNo:eq(0)").combobox('loadData', data);
                },
                error: function (data, status) {
                    alert(status);
                }
            });
        }
    });
    $(".partNo:eq(0)").combobox({
        //url: '../SpeedCountBYS/getOrderType',
        valueField: 'text',
        editable: false,
        textField: 'text',
        panelWidth: '160px',
        onChange: function () {
            let _this = this;
            $.ajax({
                url: "../EQPStatusDuration/getEQPType",
                type: "post",
                contentType: "application/x-www-form-urlencoded; ", //默认,表单提交格式
                dataType: "json",
                data: { factoryname: $('.factory:eq(0)').combobox('getValue'), lineType: $('.lineType:eq(0)').combobox('getValue'), OPERATION: $(_this).combobox('getValue') },
                success: function (data, status) {
                    $(".EQPType:eq(0)").combobox('loadData', data);
                },
                error: function (data, status) {
                    alert(status);
                }
            });
        }
    });
    $(".EQPType").combobox({
        //url: '../ProductScrapAnalysis/getOrderType',
        valueField: 'text',
        editable: false,
        textField: 'text',
        panelWidth: '160px'
    });

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值