jquery easyui 封装

使用easyui datagrid部分,主要是节省了写一堆html代码。

通过封装,可以节省每个页面都写一堆easyui的代码,相对要简单一些,个人觉得,毕竟是自己做的,难免自我感觉好些,哈哈。

封装好了之后,只需要在html中引用各种需要库,并在body中写<table id="myid"><table>

然后js中调用baseGrid(‘myid‘,"focus_ft","<{:U(‘Focus/focuslist‘)}>",cols,data_opt); 即可。

该方法中第一个参数,是table id,

第二个参数是需要加的一些过滤功能的所在的div 的id,比如红框的区域

第三个参数是加载数据的地址,可以是一个路由路径,或者别的数据地址比如静态文件地址,例子中的uri是thinkphp的路由地址

第四个参数,是列的配置,有多少列,配置多少个,就复制粘贴的活,应该是挺轻松的。见

第五个参数是需要改变的配置,具体配置项参考easyui官方文档,可以省略,会默认加载。

所以必须要的就是下面框内的东西啦(注意啦,

formatter:orderOperateFormatter 这个东西是什么?
orderOperateFormatter这个是一个js方法,自己写,每个页面都不一样。比如编辑,删除等。其他的列如果有需要也可以这么写,这是easyui的属性

),OK

$(function(){

                var data_opt = {
                    ‘pageList‘:[5,10, 20, 30,50],
                    ‘pageSize‘:10,
                    "sortName":"id",
                    "sortOrder":"desc"
                };
                var cols = [[ //注意要两个嵌套的中括号
                    { field:‘ck‘, checkbox:true },
                    { field:‘id‘, title: ‘单号‘, width: 60, align: ‘center‘, sortable: true },
                    { field:‘name‘, title: ‘推荐位名称‘, width: 80, align: ‘center‘},
                    { field:‘m‘, title: ‘管理操作‘, width: 80, align: ‘center‘, formatter:orderOperateFormatter }
                ]];
         baseGrid(‘dg‘,"focus_ft","<{:U(‘Focus/focuslist‘)}>",cols);

            });
            function orderOperateFormatter(val){
                var btn = [];
                btn.push(‘<a id="btedit"  href="__URL__/modify/id/‘+val+‘">编辑</a>‘);
                btn.push(‘<a id="btdel" href="#">删除</a>‘);
                return btn.join("|");
            }

下面是页面部分,和封装的完整代码。

页面部分:

<body>
        <div class="right-page">
            <form id="submitForm" name="submitForm" action="" method="post">
                <div class="order-search">
                    <span>
                        <input type="hidden" name="ids">
                        <input id="roleBt70" type="button"  class="order-search-button" onclick="allDel()" value="全部删除"/>
                        <input id="roleBt71" type="button"  class="order-search-button" onclick="allDisplay()" value="全部显示"/>
                        <input id="roleBt72" type="button"  class="order-search-button" onclick="allHidden()" value="全部隐藏"/>
                    </span>
                </div>
            </form>
            <div class="order-list">
                <div class="order-list-table">
                    <table id="dg" title="推荐位" style="width:80%;height:650px" >
                    </table>
                </div>
            </div>
            <div id="focus_ft" class="order-search">
                <form>
                    <span>
                        <select name="search[type]"  id="order_select_one">
                            <option value="id">单号</option>
                            <option value="name">名称</option>
                        </select>
                    </span>
                    <span>
                        <input name="search[txt_value]"  type="text" size="15" />
                    </span>
                    <span>
                        发布日期:
                        <input type="text" size="20" name="search[date_from]" class="Wdate" onfocus="WdatePicker({dateFmt: ‘yyyy-MM-dd HH:mm:ss‘})" />-<input type="text" size="20" name="search[date_to]" class="Wdate" onfocus="WdatePicker({dateFmt: ‘yyyy-MM-dd HH:mm:ss‘})"/>
                    </span>
                    <input type="button" id="roleBt1" value="查 询" class="order-search-button" onclick="search(‘dg‘,this);" />
                    </form>
                </div>
            <br/>
        </div>
    </body>

封装js代码:

/*version 1.0
 *mj
 */

/**点击后列出该行的扩展内容,使用此方法
 * id:grid 的ID
 * dg_toolbar:grid的复杂操作部分id,"dg_area_id"
 * Url:获取数据URL地址,--"<{:U(‘Focus/focuslist‘)}>"--"a.json"
 * expandUrl:隐藏内容URL地址
 * cols:列信息var cols = [[ //注意要两个嵌套的中括号
                    { field:‘id‘, title: ‘单号‘, width: 60, align: ‘center‘, sortable: true },
                    { field:‘name‘, title: ‘推荐位名称‘, width: 80, align: ‘center‘},
                    { field:‘m‘, title: ‘管理操作‘, width: 80, align: ‘center‘, formatter:orderOperateFormatter }
                ]];
 * data_opt:grid属性,可省略 var data_opt = {
                    ‘pageList‘:[10, 20, 30,50],
                    ‘pageSize‘:10,
                };
 */
function expandGrid(id,dg_toolbar,mainUrl,expandUrl,cols,data_opt){

    var default_opt = {
        ‘border‘:false,
        ‘fit‘:true,
        ‘fitColumns‘:true,
        ‘rownumbers‘:true,
        ‘singleSelect‘:false,
        ‘checkOnSelect‘:false,
        ‘selectOnCheck‘:true,
        ‘pagination‘:true,
        ‘pageList‘:[10, 20, 30, 50],
        ‘pageSize‘:10
    };
    for(opt in data_opt){
        default_opt[opt]=data_opt[opt];
    }

    $(‘#‘+id).datagrid({
        url: mainUrl,
        loadMsg: ‘数据加载中,请稍候...‘,
        pageSize: default_opt["pageSize"],
        pageList: default_opt["pageList"],
        pagination:default_opt["pagination"],
        singleSelect:default_opt["singleSelect"],
        fitColumns:default_opt["fitColumns"],
        checkOnSelect:default_opt["checkOnSelect"],
        selectOnCheck:default_opt["selectOnCheck"],
        view: detailview,
        toolbar: dg_toolbar==""?"":"#"+dg_toolbar,
        columns:cols,
        detailFormatter:function(index,row){
            return ‘<div class="ddv" style="padding:5px 0"></div>‘;
        },
        onExpandRow: function(index,row){
            var ddv = $(this).datagrid(‘getRowDetail‘,index).find(‘div.ddv‘);
            ddv.panel({
                height:"auto",
                border:false,
                cache:false,
                href:expandUrl+row.id,
                onLoad:function(){
                    $(‘#‘+id).datagrid(‘fixDetailRowHeight‘,index);
                }

            });
            $(‘#‘+id).datagrid(‘fixDetailRowHeight‘,index);
        }
    });
}

/**普通grid展示
 * id:grid 的ID
 * dg_toolbar:grid的复杂操作部分id,"dg_area_id"
 * Url:获取数据URL地址,--"<{:U(‘Focus/focuslist‘)}>"--"a.json"
 * cols:列信息var cols = [[ //注意要两个嵌套的中括号
                    { field:‘id‘, title: ‘单号‘, width: 60, align: ‘center‘, sortable: true },
                    { field:‘name‘, title: ‘推荐位名称‘, width: 80, align: ‘center‘},
                    { field:‘m‘, title: ‘管理操作‘, width: 80, align: ‘center‘, formatter:orderOperateFormatter }
                ]];
 * data_opt:grid属性,可省略 var data_opt = {
                    ‘pageList‘:[10, 20, 30,50],
                    ‘pageSize‘:10,
                };
 */
function baseGrid(id,dg_toolbar,Url,cols,data_opt){
    var default_opt = {
        ‘border‘:false,
        ‘fit‘:true,
        ‘fitColumns‘:true,
        ‘rownumbers‘:true,
        ‘singleSelect‘:false,
        ‘checkOnSelect‘:false,
        ‘selectOnCheck‘:true,
        ‘pagination‘:true,
        ‘pageList‘:[5, 10, 20, 30, 50],
        ‘pageSize‘:10
    };

    for(opt in data_opt){
        default_opt[opt]=data_opt[opt];
    }
    $(‘#‘+id).datagrid({
        url: Url,
        loadMsg: ‘数据加载中,请稍候...‘,
        pageSize: default_opt["pageSize"],
        pageList: default_opt["pageList"],
        pagination:default_opt["pagination"],
        singleSelect:default_opt["singleSelect"],
        fitColumns:default_opt["fitColumns"],
        checkOnSelect:default_opt["checkOnSelect"],
        selectOnCheck:default_opt["selectOnCheck"],
        toolbar: dg_toolbar==""?"":"#"+dg_toolbar,
        columns:cols
    });

}

function contains(arr, obj) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] === obj) {
            return true;
        }
    }
    return false;
}

/*获取grid的id串,以,隔开,如果是字符串,则以‘‘,‘‘进行隔开
 *grid_id  grid的id
 *id 要组拼的字段id
*/
function getSelections(grid_id,id){
    var rows = $("#"+grid_id).datagrid(‘getSelections‘);
    var ss=[];
    for(var i=0; i<rows.length; i++){
        var row = rows[i];
        ss.push(eval("row."+id));
    }
    return ss.join(‘,‘);
}

/*
 * 查询方法,查询区域必须用<form></form>包裹住,方便提交服务器处理
 * 传入grid的id,that表示查询按钮,传入this即可
 */
function search(grid_id,that){
    var data = $("#"+grid_id);
    var queryParams = data.datagrid(‘options‘).queryParams;

    $.each($(that).parent(‘form‘).serializeArray(), function() {
        queryParams[this[‘name‘]] = this[‘value‘];
    });
    data.datagrid({
        pageNumber: 1
    });
}
时间: 2024-10-13 23:24:17

jquery easyui 封装的相关文章

Jquery EasyUI封装简化操作

//confirm function Confirm(msg, control) { $.messager.confirm('确认', msg, function (r) { if (r) { eval(control.toString().slice(11)); } }); return false; } //load function Load() { $("<div class=\"datagrid-mask\"></div>").cs

springmvc + jquery easyui实现分页显示

如有不明白的地方,戏迎加入QQ群交流:66728073 一,下载并导入jquery easyui的导 <link rel="stylesheet" type="text/css" href="<%=basePath%>js/jquery-easyui-1.4/themes/default/easyui.css"> <link rel="stylesheet" type="text/css

【转】 jquery easyui Tab 引入页面的问题

原地址:http://blog.csdn.net/superdog007/article/details/8225518 jQuery Easyui 的tabs插件有两种方式加载某个tab(标签页)上的内容:“href远程请求”和“content本地内容”,本文就两种方式的优缺点进行简单分析和思考. 两者特点: href方式加载数据的特点: 被加载的页面只有body元素内部的内容才会被加载,也就是jQuery的ajax请求的只是html片段. 加载远程url时有遮罩效果,也就是“等待中……”效果

jQuery EasyUI DataGrid在MVC中的运用-基本属性并实现分页

※ datagrid的基本属性和方法  ※ datagrid分页在前后台的实现 最终效果:    与视图显示对应的view model   public class Book public string ItemId { get; set; } public string ProductId { get; set; } public decimal ListPrice { get; set; } public decimal UnitCost { get; set; } public strin

jquery easyui tab加载内容的几种方法

转:http://my.oschina.net/u/2331760/blog/391937?fromerr=saqeoxxB jQuery Easyui 的tabs插件有两种方式加载某个tab(标签页)上的内容:“href远程请求”和“content本地内容”,本文就两种方式的优缺点进行简单分析和思考. 两者特点: href方式加载数据的特点: content方式加载数据的特点: 简单总结: href常见问题: 1.href只加载目标URL的html片段 2.短暂的页面混乱: 3.html片段的

jquery.easyui代码详解,和遇到的问题,提供大家在使用的时候少走弯路(一)

初次使用jquery.easyui这个东东,虽然简单,但还是很费力的去研究了一下使用,在使用过程中遇到的问题,下面代码会详细的注释到 引用的文件jquery.min.js              jquery.easyui.min.js 样式:icon.css         easyui.css 页面初始化easy ui 插件 <html xmlns="http://www.w3.org/1999/xhtml"> <div class="cg-op&qu

Jquery easyui treegrid实现树形表格的行拖拽

前几天修改了系统的一个功能——实现树形列列表的行拖拽,以达到排序的目的.现在基本上功能实现,现做一个简单的总结. 1.拿到这个直接网上搜,有好多,但是看了后都觉得不是太复杂就是些不是特别想看的例子,自己太懒(对自己不是很熟悉的东西是不愿意第一去看的).结果选择良久,还是jquery easyui treegrid这个例子自己看起来比较熟悉.于是就专心研究了,从官方网站http://www.jeasyui.net/下载了demo,开始研读.先把jsp页面一些代码贴出 <link rel="s

jQuery EasyUI教程之datagrid应用(二)

上次写到了让数据库数据在网页datagrid显示,我们只是单纯的实现了显示,仔细看的话显示的信息并没有达到我们理想的效果,这里我们丰富一下: 上次显示的结果是这样的 点击查看上篇:jQuery EasyUI教程之datagrid应用(一) 这里不难发现生日的格式是毫秒(long型数据),并不是我们想要的年月日的格式,那我们就修改一下 我们在js中写入格式时间的方法,并在生日一列用formatter来调用方法格式时间, //格式化时间 //把long型日期转为想要类型 function getDa

jquery easyui Tab 引入页面的问题

jQuery Easyui 的tabs插件有两种方式加载某个tab(标签页)上的内容:“href远程请求”和“content本地内容”,本文就两种方式的优缺点进行简单分析和思考. 两者特点: href方式加载数据的特点: 被加载的页面只有body元素内部的内容才会被加载,也就是jQuery的ajax请求的只是html片段. 加载远程url时有遮罩效果,也就是“等待中……”效果,用户体验较好. 当加载的页面布局较为复杂,或者有较多的js脚本需要运行的时候,编码往往就需要谨慎了,容易出问题,后面会详