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 };