jqGrid 项目总结

<!DOCTYPE HTML>  
<html lang=“en-US”>  
<head>  
<meta charset=“UTF-8”>  
<title></title>  
<!– jqgrid 依赖于 jqueryui ,对应的主题需要自己从jqueryui的网上下载。   –>  
<link rel=“stylesheet” type=“text/css” href=“css/custom-jqgird/jquery-ui-1.8.16.custom.css” media=“all”/>  
<!– ui.jqgrid.css 在下载的jqGrid包里  –>  
<link rel=“stylesheet” type=“text/css” href=“css/ui.jqgrid.css” media=“all”/>  
</head>  
<body>  
    <div class=“tab-con”>           
        <div class=“result-table”>  
            <table id=“hrCalendar”></table> <div id=“phrCalendar”></div>  
        </div>  
        <!–pagger 在这里我没有使用默认的分页,而是自己另外写的。–>  
        <div class=“digg ar”>  
            <a href=“#2” target=“_self” page=“2” class=“”><<</a>  
            <a href=“#2” target=“_self” page=“2” class=“”>上一页</a>  
            <span><span class=“digg-font”></span><a href=“#2” target=“_self” page=“2” class=“”>1</a>/<span id=“totalNum”>15</span><span class=“digg-font”></span></span>  
            <a href=“#2” target=“_self” page=“2” class=“”>下一页</a>  
            <a href=“#2” target=“_self” page=“2” class=“”>>></a>  
        </div>  
    </div>  
  
    <!– js  –>  
    <script type=“text/javascript” src=“js/jquery-1.6.2.min.js”></script>  
    <!– jqGrid de iln8 语言包,中文环境下必须安装grid.locale-cn.js,其他环境需要装对应的语言包 –>  
    <script type=“text/javascript” src=“js/grid.locale-cn.js”></script>  
    <!– jqGrid的所有的压缩版。  –>  
    <script type=“text/javascript” src=“js/jquery.jqGrid.min.js”></script>  
    <!– js  以上这些在你下载的压缩包都有。–>  
      
    <!–jquery.tablednd.js 这个不属于jqGrid,这是另外一个jquery的插件,用来实现行间的拖动 –>  
    <script type=“text/javascript” src=“js/jquery.tablednd.js”></script>  
      
    <script type=“text/javascript”>  
    //js  
    </script>  
    <!–   js    –>  
</body>  
</html>  

 

 

view plain

/* 
    jqGrid 如何开始工作  (how jqGrid works  ) 
    jqGrid依赖于jqueryui的css和主题包, 
    从  www.jqueryui.com  下载 jquery-ui-custom.css和对应的主题包。 
    从http://www.trirand.com/blog/?page_id=6 jqgrid的官网下载jqGrid,可以自定义,选择需要的插件,不会的同学可以全选,使用jqGrid的min版。 
    想看源码的话 jqgrid git  https://github.com/tonytomov/jqGrid  ,可以从git下载,git下载的源码是分开的。  
     
    */  
    var customOperate = {  
        “url”:“”,  
        customEdit:function(url, rowId){  
            this.url = this.url || “www.baidu.com”  
            //console.log(“编辑”,url, rowId);  
            return false;  
        },  
        customRedoPub:function(url, rowId){  
            //console.log(“撤销”,url, rowId);  
            return false;  
        },  
        customDel:function(url, rowId){  
            //console.log(“删除”,url, rowId);  
            return false;  
        }  
    };  
      
    jQuery(function(){  
        /* 
            jquery.tablednd.js  初始化拖动插件 
        */  
        jQuery(“#hrCalendar”).tableDnD({  
            scrollAmount:100,   
            topIndex:3,  
            startIndex:0,  
            onDrop:function(a, b){  
                //a 为 table,b为拖动的行  
            },  
            onDragStart:function(a, b){  
                //a 为 table,b为拖动的行  
                this.startIndex = $(b).index() ;  
            },  
            /* 
                @parm  a:拖动的行 
                @parm  b:释放鼠标左键时的行 
                @return boolean  是否可以拖动 
            */  
            onAllowDrop:function(a, b){  
                var $b = $(b), $bIndex = $b.index() ;  
                ifthis.startIndex > this.topIndex && $bIndex > this.topIndex && $bIndex !== 0 ){  
                    return true;  
                }else ifthis.startIndex <= this.topIndex && $bIndex <= this.topIndex && $bIndex !== 0) {  
                    return true;  
                }else{  
                    return false;  
                }  
            }  
        });  
          
        /*jqGrid  
            1、options 初始化参数 
                 
        */  
        jQuery(“#hrCalendar”).jqGrid({   
            url:‘data/a.json’,      //请求数据格式url  
            datatype: “json”,       //返回的数据类型  
            colNames:[‘主显月份’‘主题’‘起始时间’,‘结束时间’,‘状态’,‘执行操作’],     //header,表头显示的name  
            colModel:[  //定义每列值的属性,具体的可以参见    colModel Options http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options  
                {name:‘id’,index:‘id’,  align:“center”,50},         
                {name:,index:,  align:“center”},   
                {name:,index:,  align:“center”},   
                {name:,index:,  align:“center”},   
                {name:,index:, align:“center”},  
                {name:‘note’,index:‘note’,  sortable:false, align:“center”}  
            ],   
            rowNum:10,   
            autotrue,         //auto;  
            multiselect:true,       //true,第一列添加checkbox,可以全选  
            multiselectWidth:51,    //checkbox 列宽  
            height: ‘auto’,         //与width不同,设置height:auto,  
            pagerpos:“right”,       //是用默认分页的时候,分页页码在nav上的位置。  
            hoverrows: false,       //鼠标经过行时hover样式,true,增加hover状态。  
            altRows:true,           //是否隔行换色,  
            altclass:“ui-state-highlight-hover”,    //隔行换色的class。  
            sortname: ‘invdate’,   
            iewrecords: true,   
            sortorder: “desc”,   
            beforeSelectRow:function(){             //事件:在选中行之前,返回true,选中行,返回false,不选中。  
                return false;  
            },  
            //@parm  data:返回的json对象  
            loadComplete:function(data){            //加载完数据时,在回调函数中,生成分页。  
                $.customPager({  
                    “page”: data.page,              //当前页  
                    “total”: data.total,            //总页数  
                    “records”: data.records         //总记录数  
                })  
            },  
            gridComplete: function() {              //表格生成完成后的回调函数。  
                $(“#_empty”,“#hrCalendar”).addClass(“nodrag nodrop”);   
                jQuery(“#hrCalendar”).tableDnDUpdate();                         //更新jquery.tablednd.js插件的方法。          
                  
                var rowIds = jQuery(“#hrCalendar”).jqGrid(‘getDataIDs’);        //返回当前grid里所有数据的id  
                  
                for(var i=0;i < rowIds.length;i++){  
                    var rowId = rowIds[i];                    
                    var content =  [‘<a href=”#” class=”bluelink” onclick=”customOperate.customEdit(\’\’,’ + rowId + ‘)”>编辑内容</a>|’,  
                                    ‘<a href=”#” class=”redlink” onclick=”customOperate.customRedoPub(\’\’,’ + rowId + ‘)”>撤销发布</a>| ‘,  
                                    ‘<a href=”#” class=”redlink” onclick=”customOperate.customDel(\’\’,’ + rowId + ‘)”>删除</a> ‘].join(“”);  
                    //根据rowid来设定指定列的值。  
                    jQuery(“#hrCalendar”).setCell(rowId,“note”, content, “”, { title:” “} );  
                }  
            }  
        });   
          
        $.customPager = function(options){  
            var op = $.extend({  
                “page”: 1,      //当前页  
                “total”: 2,     //总页数  
                “records”: 14   //总记录数  
            }, options);  
              
            $(“#totalNum”).text(op.total);  
              
            var arr = $(“.digg”).find(“a”);  
            var first = arr[0],   
                last = arr[4],   
                prev = arr[1],   
                next = arr[3],   
                cur = arr[2];  
                  
            $(first).attr(“page”, 1);  
            $(last).attr(“page”, op.total);  
            $(cur).attr(“page”, op.page).text(op.page);  
              
              
            //上一页和第一页  
            if( op.page <= 1 ){  
                $(prev).hide();   
            }else{  
                $(prev).attr(“page”, op.page – 1);  
                $(prev).show();  
            }  
              
            //下一页和最后一页  
            if( op.page >= op.total ){  
                $(next).hide();  
            }else{  
                $(next).attr(“page”, op.page + 1);  
                $(next).show() ;  
            }  
              
            arr.click(function(){  
                var page = $(this).attr(“page”);  
                $(“#hrCalendar”).setGridParam({ “page”: page });            //这个是用自己的分页很方便,只要设一下jqgrid的参数page就可以了。  
                $(“#hrCalendar”).trigger(“reloadGrid”);                     //页数变了,然后重新加载grid。  
            })  
        }  
    })  


json 数据格式

 

view plain

{  
    “page”: 2,  
    “total”: 5,  
    “records”: 14,  
    “rows”: [{  
        “id”“14”,  
        “cell”: [“2012年8月6日”“职称评定”“2011年8月1日”“2011年8月1日”“已发布”null]  
    },{  
        “id”“13”,  
        “cell”: [“2011年8月1日”“职称评定”“2011年8月1日”“2011年8月1日”“已发布”null]  
    }, {  
        “id”“12”,  
        “cell”: [“2011年8月1日”“休假规则”“2011年8月1日”“2011年8月1日”“已发布”null]  
    }, {  
        “id”“11”,  
        “cell”: [“2011年5月1日”“年度调薪”“2011年8月1日”“2011年8月1日”“已发布”null]  
    }, {  
        “id”“10”,  
        “cell”: [“2011年4月1日”“个人晋升”“2011年8月1日”“2011年8月1日”“已发布”null]  
    }, {  
        “id”“9”,  
        “cell”: [“2010年5月1日”“公司福利”“2011年8月1日”“2011年8月1日”“已发布”null]  
    }, {  
        “id”“8”,  
        “cell”: [“2011年8月1日”“职称评定”“2011年8月1日”“2011年8月1日”“已发布”null]  
    }, {  
        “id”“7”,  
        “cell”: [“2011年3月1日”“休假规则”“2011年8月1日”“2011年8月1日”“已发布”null]  
    }, {  
        “id”“6”,  
        “cell”: [“2010年8月1日”“公司福利”“2011年8月1日”“2011年8月1日”“已发布”null]  
    }, {  
        “id”“5”,  
        “cell”: [“2011年8月1日”“个人晋升”“2011年8月1日”“2011年8月1日”“已发布”null]  
    }, {  
        “id”“4”,  
        “cell”: [“2012年8月6日”“职称评定”“2011年8月1日”“2011年8月1日”“已发布”null]  
    },{  
        “id”“3”,  
        “cell”: [“2012年8月6日”“职称评定”“2011年8月1日”“2011年8月1日”“已发布”null]  
    },{  
        “id”“2”,  
        “cell”: [“2012年8月6日”“职称评定”“2011年8月1日”“2011年8月1日”“已发布”null]  
    },{  
        “id”“1”,  
        “cell”: [“2012年8月6日”“职称评定”“2011年8月1日”“2011年8月1日”“已发布”null]  
    }]  
}  

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注