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>
View Code

封裝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
    });
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM