jqGrid -- 一个test示例

var test_main = {  

002  /*初始化*/ 

003  init: function(options){  

004   var defaults = {  

005    className : 'test_main',  

006    alertfield: 'name',  

007    caption   : '测试',  

008    grid      : '#grid_test',  

009    pager     : '#pager_test',  

010    error     : '#error_test',  

011    data_url  : UR_ADMIN +'/test/get_table/',  

012    editurl   : UR_ADMIN +'/test/edit_save/',  

013    openurl   : UR_ADMIN +'/test/edit/id/',  

014    del_url   : UR_ADMIN +'/test/delete/',  

015    autowidth : true,  

016    width     : 800,  

017    height    : $(window).height() - 230  

018   };  

019   var options = $.extend(defaults, options);  

020   this.options = options;  

021   this.create_grid(options);  

022  },  

023  /** 添加 */ 

024  add: function(target){  

025   if(target=='self'){  

026    var tab_id = '#t'+this.options.className;  

027    maintabs.add(tab_id,this.options.caption+'添加',this.options.openurl+'0/');  

028   }else{  

029    back_call = this.options.className +'.refresh()';  

030    Dialog.show(this.options.caption+'--添加',this.options.openurl+'0/',700,650,back_call);   

031   }  

032  },  

033  /** 编辑 */ 

034  edit: function(target){  

035   var rowid = $(this.options.grid).jqGrid('getGridParam','selrow');  

036   if(rowid){  

037    var rowData = $(this.options.grid).jqGrid("getRowData", rowid);  

038    if(target=='self'){  

039     var tab_id = '#t'+this.options.className+rowData.id;  

040     var caption = eval('rowData.'+this.options.alertfield);  

041     maintabs.add(tab_id,this.options.caption+':'+caption,this.options.openurl+rowData.id+'/');  

042    }else{  

043     back_call = this.options.className +'.refresh()';  

044     Dialog.show(this.options.caption+'--编辑',this.options.openurl+rowData.id+'/',700,650,back_call);   

045    }  

046   } else {  

047    Dialog.alert("请选择一项"+this.options.caption);  

048   }         

049  },  

050  /** 删除 */ 

051  del: function(){  

052   var options = this.options;  

053   var rowid = $(options.grid).jqGrid('getGridParam','selrow');  

054   if(rowid){  

055    var rowData = $(options.grid).jqGrid("getRowData", rowid);  

056    field_value = eval('rowData.'+options.alertfield);  

057    if(!confirm("删除"+options.caption+"["+field_value+"],请确认?")) return false;  

058    $.ajax({  

059     url: options.del_url+ "id/"+rowData.id+"/",  

060     success: function (response) {  

061      call(options,'refresh');  

062      Dialog.alert(options.caption+'[<span>'+field_value+'</span>]'+'已删除');  

063     }  

064    });  

065   } else {  

066    Dialog.alert("请选择一项"+this.options.caption);  

067   }         

068  },  

069  /**刷新 */ 

070  refresh: function(){  

071   $(this.options.error).html('');  

072   var rowid = $(this.options.grid).jqGrid('getGridParam','selrow');  

073   $(this.options.grid).jqGrid('setGridParam',{selrow:rowid}).trigger("reloadGrid");  

074   setTimeout( function() {$(this.options.grid).jqGrid('setSelection',rowid)},300);  

075  },  

076  /**搜索 */ 

077  search: function(form){  

078   var formdata = $(form).serialize();  

079   if(formdata!=''){  

080    formdata = formdata.replace(/=/g, ':"');  

081    formdata = formdata.replace(/&/g, '",');  

082    formdata += '"';  

083   }  

084   formdata = '{'+formdata+'}';  

085   eval("$(this.options.grid).jqGrid('setPostData',"+formdata+");");  

086   $(this.options.grid).trigger("reloadGrid");  

087   this.show();  

088  },  

089  /**显示 */ 

090  show: function(){  

091    $(this.options.grid).jqGrid('setGridState','visible');  

092  },  

093  /**隐藏 */ 

094  hide: function(){  

095    $(this.options.grid).jqGrid('setGridState','hidden');  

096  },  

097  /*创建GRID*/ 

098  create_grid:function(options){  

099   jQuery(options.grid).jqGrid({  

100    url: options.data_url,  

101    datatype: "json",  

102    mtype: "POST",  

103    colNames:["id","名称","显示","更新时间"],  

104    colModel:[  

105     {name:'id',index:'id', hidden:true,key:true},  

106     {name:'name',index:'name', width:180},  

107     {name:'display',index:'display', width:50, align:"center",editable:true,edittype:"checkbox",editoptions:{value:"Yes:No"}},  

108     {name:'update_time',width:80}  

109    ],  

110    rowNum:10,  

111    rowList:[10,20,30,40,50],  

112    autowidth: options.autowidth,  

113    width : options.width,  

114    height: options.height,  

115    sortname: 'sort',  

116    sortorder: "asc",  

117    pgbuttons : true,  

118    pginput : true,  

119    pager : options.pager,  

120    viewrecords: true,  

121    jsonReader: {  

122     repeatitems : false,  

123     id: "0" 

124    },  

125    hiddengrid: false,  

126    caption: options.caption+'',  

127    forceFit : true,  

128    cellEdit: false,  

129    cellsubmit: 'clientArray',  

130    editurl:options.editurl,  

131    afterSaveCell : function(rowid,name,val,iRow,iCol) {  

132     var rowData = $(options.grid).jqGrid("getRowData", rowid);  

133     postdata =  "id="+rowData.id+"&"+name+"="+val;  

134     $.ajax({  

135         type: "POST",  

136         dataType : "json",  

137         url: options.editurl,  

138         data: postdata,  

139         success: function(response){  

140        if(response.status == 'error'){  

141         $(options.error).html(response.error);  

142        }else{  

143         $(options.error).html('');  

144        }  

145         }  

146       });  

147    },  

148    loadComplete: function(xhr) {  

149     $(options.error).html('');  

150     $(options.error).hide();  

151    },  

152    loadError: function(xhr,status,error){  

153     $(options.error).html('<div>'+error+'</div>');  

154     $(options.error).show();  

155    },  

156    gridComplete: function() {  

157    

158    }  

159   });  

160   /****GRID 外部处理*******/ 

161   $(options.grid).jqGrid('navGrid',options.pager,{edit:false,add:false,del:false,search:false,refresh:false,view:false});  

162   $(options.grid).jqGrid('navButtonAdd',options.pager,{caption:"刷新",  

163    buttonicon:"ui-icon-refresh",  

164    onClickButton:function(){  

165     call(options,'refresh');  

166    }  

167   });  

168   $(options.grid).jqGrid('navButtonAdd',options.pager,{caption:"编辑状态",  

169    buttonicon:"ui-icon-close",  

170    id:'isedit',  

171    onClickButton:function(){  

172     var isedit = !$(options.grid).jqGrid('getGridParam','cellEdit');  

173     if(isedit){  

174      $('span.ui-icon-close', '#isedit',options.pager).removeClass().addClass('ui-icon ui-icon-check');  

175      //$('#isedit',options.pager).attr('title','允许编辑');  

176     }else{  

177      $('span.ui-icon-check', '#isedit',options.pager).removeClass().addClass('ui-icon ui-icon-close');  

178      //$('#isedit',options.pager).attr('title','不允许编辑');  

179     }  

180     $(options.grid).jqGrid('setGridParam',{cellEdit:isedit}).trigger("reloadGrid");  

181    }  

182   });  

183   /*  

184   $(options.grid).jqGrid('navButtonAdd',options.pager,{caption:"移动",  

185    buttonicon:"ui-icon-extlink",  

186    onClickButton:function(){  

187     $(options.grid).jqGrid('sortableRows');  

188    }  

189   });*/ 

190  }  

191 }; 

 

posted @ 2012-07-09 15:38  星连  阅读(501)  评论(0)    收藏  举报