jqGrid讲解
1 以下是jqGrid 最常用的属性和事件,经过一段时间的整理,终于弄的差不多了。版权所有,转载请注明出处,向您的厚道致敬! 2 3 4 [html] 5 <html> 6 ... 7 <table id="list1"></table> 8 <div id="pager1"></div> 9 ... 10 <table id="list5"></table> 11 <div id="pager5"></div> <br /> 12 <a href="#" id="a1">Get data from selected row</a> 13 <br /> 14 <a href="#" id="a2">Delete row 2</a> 15 <br /> 16 <a href="#" id="a3">Update amounts in row 1</a> 17 <br /> 18 <a href="#" id="a4">Add row with id 99</a> 19 ... 20 <table id="list6"></table> 21 <div id="pager6"></div> <br /> 22 <a href="javascript:void(0)" id="g1" onclick="alert(jQuery('#list6').jqGrid('getGridParam','url'));">Get url</a> 23 <br /> 24 <a href="javascript:void(0)" id="g2" onclick="alert(jQuery('#list6').jqGrid('getGridParam','sortname'));">Get Sort Name</a> www.2cto.com 25 <br /> 26 <a href="javascript:void(0)" id="g3" onclick="alert(jQuery('#list6')jqGrid('getGridParam','sortorder'));">Get Sort Order</a> 27 <br /> 28 <a href="javascript:void(0)" id="g4" onclick="alert(jQuery('#list6')jqGrid('getGridParam','selrow'));">Get Selected Row</a> 29 <br /> 30 <a href="javascript:void(0)" id="g5" onclick="alert(jQuery('#list6')jqGrid('getGridParam','page'));">Get Current Page</a> 31 <br /> 32 <a href="javascript:void(0)" id="g6" onclick="alert(jQuery('#list6').jqGrid('getGridParam','rowNum'));">Get Number of Rows requested</a> 33 <br /> 34 <a href="javascript:void(0)" id="g7" onclick="alert('See Multi select rows example');">Get Selected Rows</a> 35 <br /> 36 <a href="javascript:void(0)" id="g8" onclick="alert(jQuery('#list6').jqGrid('getGridParam','datatype'));">Get Data Type requested</a> 37 <br /> 38 <a href="javascript:void(0)" id="g9" onclick="alert(jQuery('#list6').jqGrid('getGridParam','records'));">Get number of records in Grid</a> 39 ... 40 <table id="list7"></table> 41 <div id="pager7"></div> 42 <br /> 43 <a href="javascript:void(0)" id="s1">Set new url</a> 44 <br /> 45 <a href="javascript:void(0)" id="s2">Set Sort to amount column</a> 46 <br /> 47 <a href="javascript:void(0)" id="s3" >Set Sort new Order</a> 48 <br /> 49 <a href="javascript:void(0)" id="s4">Set to view second Page</a> 50 <br /> 51 <a href="javascript:void(0)" id="s5">Set new Number of Rows(15)</a> 52 <br /> 53 <a href="javascript:void(0)" id="s6" >Set Data Type from json to xml</a> 54 ... 55 <table id="list9"></table> 56 <div id="pager9"></div> 57 <br /> 58 <a href="javascript:void(0)" id="m1">Get Selected id's</a> 59 <a href="javascript:void(0)" id="m1s">Select(Unselect) row 13</a> 60 ... 61 Invoice Header 62 <table id="list10"></table> 63 <div id="pager10"></div> 64 <br /> 65 Invoice Detail 66 <table id="list10_d"></table> 67 <div id="pager10_d"></div> 68 <a href="javascript:void(0)" id="ms1">Get Selected id's</a> 69 ... 70 <table id="list11"> 71 </table> <div id="pager11"></div> 72 <script src="subgrid.js" type="text/javascript"> </script> 73 74 ... 75 <div class="h">Search By:</div> 76 <div> 77 <input type="checkbox" id="autosearch" onclick="enableAutosubmit(this.checked)"> Enable Autosearch 78 <br/> 79 Code 80 <br /> 81 <input type="text" id="search_cd" onkeydown="doSearch(arguments[0]||event)" /> 82 </div> 83 <div> Name<br> 84 <input type="text" id="item" onkeydown="doSearch(arguments[0]||event)" /> 85 <button onclick="gridReload()" id="submitButton" style="margin-left:30px;">Search</button> 86 </div> 87 <br /> 88 <table id="bigset"></table> 89 <div id="pagerb"></div> 90 <script src="bigset.js" type="text/javascript"> </script> 91 92 ... 93 <table id="list13"></table> 94 <div id="pager13"></div> <br /> 95 <a href="javascript:void(0)" id="cm1">Get Selected id's</a> 96 <a href="javascript:void(0)" id="cm1s">Select(Unselect) row 13</a> 97 <script src="cmultiex.js" type="text/javascript"> </script> 98 99 ... 100 <table id="list15"></table> 101 <div id="pager15"></div> 102 <a href="javascript:void(0)" id="sids">Get Grid id's</a> 103 <br/> 104 105 ... 106 <table id="list17"></table> 107 <div id="pager17"></div> 108 <a href="javascript:void(0)" id="hc">Hide column Tax</a> 109 <br/> 110 <a href="javascript:void(0)" id="sc">Show column Tax</a> 111 </html> 112 113 <html> 114 ... 115 <table id="list1"></table> 116 <div id="pager1"></div> 117 ... 118 <table id="list5"></table> 119 <div id="pager5"></div> <br /> 120 <a href="#" id="a1">Get data from selected row</a> 121 <br /> 122 <a href="#" id="a2">Delete row 2</a> 123 <br /> 124 <a href="#" id="a3">Update amounts in row 1</a> 125 <br /> 126 <a href="#" id="a4">Add row with id 99</a> 127 ... 128 <table id="list6"></table> 129 <div id="pager6"></div> <br /> 130 <a href="javascript:void(0)" id="g1" onclick="alert(jQuery('#list6').jqGrid('getGridParam','url'));">Get url</a> 131 <br /> 132 <a href="javascript:void(0)" id="g2" onclick="alert(jQuery('#list6').jqGrid('getGridParam','sortname'));">Get Sort Name</a> 133 <br /> 134 <a href="javascript:void(0)" id="g3" onclick="alert(jQuery('#list6')jqGrid('getGridParam','sortorder'));">Get Sort Order</a> 135 <br /> 136 <a href="javascript:void(0)" id="g4" onclick="alert(jQuery('#list6')jqGrid('getGridParam','selrow'));">Get Selected Row</a> 137 <br /> 138 <a href="javascript:void(0)" id="g5" onclick="alert(jQuery('#list6')jqGrid('getGridParam','page'));">Get Current Page</a> 139 <br /> 140 <a href="javascript:void(0)" id="g6" onclick="alert(jQuery('#list6').jqGrid('getGridParam','rowNum'));">Get Number of Rows requested</a> 141 <br /> 142 <a href="javascript:void(0)" id="g7" onclick="alert('See Multi select rows example');">Get Selected Rows</a> 143 <br /> 144 <a href="javascript:void(0)" id="g8" onclick="alert(jQuery('#list6').jqGrid('getGridParam','datatype'));">Get Data Type requested</a> 145 <br /> 146 <a href="javascript:void(0)" id="g9" onclick="alert(jQuery('#list6').jqGrid('getGridParam','records'));">Get number of records in Grid</a> 147 ... 148 <table id="list7"></table> 149 <div id="pager7"></div> 150 <br /> 151 <a href="javascript:void(0)" id="s1">Set new url</a> 152 <br /> 153 <a href="javascript:void(0)" id="s2">Set Sort to amount column</a> 154 <br /> 155 <a href="javascript:void(0)" id="s3" >Set Sort new Order</a> 156 <br /> 157 <a href="javascript:void(0)" id="s4">Set to view second Page</a> 158 <br /> 159 <a href="javascript:void(0)" id="s5">Set new Number of Rows(15)</a> 160 <br /> 161 <a href="javascript:void(0)" id="s6" >Set Data Type from json to xml</a> 162 ... 163 <table id="list9"></table> 164 <div id="pager9"></div> 165 <br /> 166 <a href="javascript:void(0)" id="m1">Get Selected id's</a> 167 <a href="javascript:void(0)" id="m1s">Select(Unselect) row 13</a> 168 ... 169 Invoice Header 170 <table id="list10"></table> 171 <div id="pager10"></div> 172 <br /> 173 Invoice Detail 174 <table id="list10_d"></table> 175 <div id="pager10_d"></div> 176 <a href="javascript:void(0)" id="ms1">Get Selected id's</a> 177 ... 178 <table id="list11"> 179 </table> <div id="pager11"></div> 180 <script src="subgrid.js" type="text/javascript"> </script> 181 182 ... 183 <div class="h">Search By:</div> 184 <div> 185 <input type="checkbox" id="autosearch" onclick="enableAutosubmit(this.checked)"> Enable Autosearch 186 <br/> 187 Code 188 <br /> 189 <input type="text" id="search_cd" onkeydown="doSearch(arguments[0]||event)" /> 190 </div> 191 <div> Name<br> 192 <input type="text" id="item" onkeydown="doSearch(arguments[0]||event)" /> 193 <button onclick="gridReload()" id="submitButton" style="margin-left:30px;">Search</button> 194 </div> 195 <br /> 196 <table id="bigset"></table> 197 <div id="pagerb"></div> 198 <script src="bigset.js" type="text/javascript"> </script> 199 200 ... 201 <table id="list13"></table> 202 <div id="pager13"></div> <br /> 203 <a href="javascript:void(0)" id="cm1">Get Selected id's</a> 204 <a href="javascript:void(0)" id="cm1s">Select(Unselect) row 13</a> 205 <script src="cmultiex.js" type="text/javascript"> </script> 206 207 ... 208 <table id="list15"></table> 209 <div id="pager15"></div> 210 <a href="javascript:void(0)" id="sids">Get Grid id's</a> 211 <br/> 212 213 ... 214 <table id="list17"></table> 215 <div id="pager17"></div> 216 <a href="javascript:void(0)" id="hc">Hide column Tax</a> 217 <br/> 218 <a href="javascript:void(0)" id="sc">Show column Tax</a> 219 </html> 220 [javascript] 221 <script type="text/javascript"> 222 jQuery().ready(function (){ 223 //父Grid(主Grid) 224 jQuery("#list1").jqGrid({ 225 url:'server.php?q=1', 226 //editurl:"someurl.php", 227 datatype: "json", //数据类型 datatype: "local", datatype: "xml", 228 colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'], 229 colModel:[ 230 {name:'id',index:'id', width:75}, 231 {name:'invdate',index:'invdate', width:90}, 232 {name:'name',index:'name', width:100}, 233 {name:'amount',index:'amount', width:80, align:"right"}, 234 {name:'tax',index:'tax', width:80, align:"right"}, 235 {name:'total',index:'total', width:80,align:"right"}, 236 {name:'note',index:'note', width:150, sortable:false} 237 ], 238 rowNum:10, //每页数据显示条数 239 rowList:[10,20,30], //每页数据显示条数 240 pager: jQuery('#pager1'), //Grid显示在id为pager1的div里面 241 sortname: 'id', //根据ID排序 242 viewrecords: true, //显示数据总记录数 243 sortorder: "desc", //倒序 244 hidegrid: false, //Grid是否隐藏 245 autowidth: true, //自动列宽 246 width: 500, //Grid 宽度 247 height: 200, //行高 height: "100%", 248 multiselect: true, //复选框 249 recordpos: 'left', //总记录显示位置:居左 250 mtype: "POST", 251 pgbuttons: false, 252 pgtext: false, 253 pginput: false, 254 multikey: "ctrlKey", 255 onSortCol: function(name,index){ 256 //点击排序列,根据哪列排序 257 alert("Column Name: "+name+" Column Index: "+index); 258 }, 259 ondblClickRow: function(id){ 260 //双击行 261 alert("You double click row with id: "+id); 262 }, 263 onSelectRow: function(ids) { //单击选择行 264 if(ids == null) { 265 ids=0; 266 if(jQuery("#list10_d").jqGrid('getGridParam','records') >0 ) { 267 jQuery("#list10_d").jqGrid('setGridParam',{url:"subgrid.php?q=1&id="+ids,page:1}); 268 jQuery("#list10_d").jqGrid('setCaption',"Invoice Detail: "+ids) .trigger('reloadGrid'); 269 } 270 } else { 271 jQuery("#list10_d").jqGrid('setGridParam',{url:"subgrid.php?q=1&id="+ids,page:1}); 272 jQuery("#list10_d").jqGrid('setCaption',"Invoice Detail: "+ids) .trigger('reloadGrid'); 273 } 274 }, 275 subGrid : true, //显示内部Grid(次Grid),单击行展开嵌套Grid 276 subGridUrl: 'subgrid.php?q=2', //内部Grid URL 277 subGridModel: [ { //内部Grid列 278 name : ['No','Item','Qty','Unit','Line Total'], 279 width : [55,200,80,80,80], 280 params: ['invdate'] //嵌套Grid参数 281 } ], 282 subGridRowExpanded: function(subgrid_id, row_id) { //Grid内部嵌套Grid 283 // we pass two parameters 284 // subgrid_id is a id of the div tag created whitin a table data 285 // the id of this elemenet is a combination of the "sg_" + id of the row 286 // the row_id is the id of the row // If we wan to pass additinal parameters to the url we can use 287 // a method getRowData(row_id) - which returns associative array in type name-value 288 // here we can easy construct the flowing 289 var subgrid_table_id, pager_id; 290 subgrid_table_id = subgrid_id+"_t"; 291 pager_id = "p_"+subgrid_table_id; 292 $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>"); 293 jQuery("#"+subgrid_table_id).jqGrid({ 294 url:"subgrid.php?q=2&id="+row_id, 295 datatype: "xml", 296 colNames: ['No','Item','Qty','Unit','Line Total'], 297 colModel: [ 298 {name:"num",index:"num",width:80,key:true}, 299 {name:"item",index:"item",width:130}, 300 {name:"qty",index:"qty",width:70,align:"right"}, 301 {name:"unit",index:"unit",width:70,align:"right"}, 302 {name:"total",index:"total",width:70,align:"right",sortable:false} 303 ], 304 rowNum:20, 305 pager: pager_id, 306 sortname: 'num', 307 sortorder: "asc", 308 height: '100%' //自动适应行高 309 }); 310 jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:false,del:false}); 311 }, 312 subGridRowColapsed: function(subgrid_id, row_id) { 313 // this function is called before removing the data 314 //var subgrid_table_id; 315 //subgrid_table_id = subgrid_id+"_t"; 316 //jQuery("#"+subgrid_table_id).remove(); 317 }, 318 loadComplete: function(){ //加载完成(初始加载),回调函数 319 var ret; 320 alert("This function is executed immediately after\n data is loaded. We try to update data in row 13."); 321 ret = jQuery("#list15").jqGrid('getRowData',"13"); 322 if(ret.id == "13"){ 323 jQuery("#list15").jqGrid('setRowData',ret.id,{note:"<font color='red'>Row 13 is updated!</font>"}) 324 } 325 }, 326 caption:"Grid Example" //Grid名称 327 }).navGrid('#pager1',{edit:false,add:false,del:false}); 328 //jQuery("#list6").jqGrid('navGrid',"#pager6",{edit:false,add:false,del:false}); = .navGrid('#pager1',{edit:false,add:false,del:false}); 329 //添加查询文本框 330 jQuery("#list7").jqGrid('navGrid','#pager7',{edit:false,add:false,del:false,refresh:false,searchtext:"Find"}); 331 //查询和刷新按钮居右 332 jQuery("#list9").jqGrid('navGrid','#pager9',{add:false,del:false,edit:false,position:'right'}); 333 //编辑行,添加Add、Edit、Save、Cancel按钮 //<script src="rowedex3.js" type="text/javascript"> </script> 334 jQuery("#43rowed3").jqGrid('inlineNav',"#p43rowed3"); //<table id="rowed3"></table> <div id="prowed3"></div> 335 336 //子Grid 337 jQuery("#list10_d").jqGrid({ 338 height: 100, 339 url:'subgrid.php?q=1&id=0', 340 datatype: "json", 341 colNames:[ 342 'No','Item', 'Qty', 'Unit','Line Total' 343 ], 344 colModel:[ 345 {name:'num',index:'num', width:55}, 346 {name:'item',index:'item', width:180}, 347 {name:'qty',index:'qty', width:80, align:"right"}, 348 {name:'unit',index:'unit', width:80, align:"right"}, 349 {name:'linetotal',index:'linetotal', width:80,align:"right", sortable:false, search:false} 350 ], 351 rowNum:5, 352 rowList:[5,10,20], 353 pager: '#pager10_d', 354 sortname: 'item', 355 viewrecords: true, 356 sortorder: "asc", 357 multiselect: true, 358 caption:"Invoice Detail" 359 }).navGrid('#pager10_d',{add:false,edit:false,del:false}); 360 361 jQuery("#a1").click( function(){ 362 //获取Grid中选中的行id 363 var id = jQuery("#list5").jqGrid('getGridParam','selrow'); 364 if (id) { 365 var ret = jQuery("#list5").jqGrid('getRowData',id); 366 alert("id="+ret.id+" invdate="+ret.invdate+"..."); 367 } else { 368 alert("Please select row"); 369 } 370 }); 371 jQuery("#a2").click( function(){ 372 //删除第12行 373 var su=jQuery("#list5").jqGrid('delRowData',12); 374 if(su) 375 alert("Succes. Write custom code to delete row from server"); 376 else 377 alert("Allready deleted or not in list"); 378 }); 379 jQuery("#a3").click( function(){ 380 //修改第11行 381 var su=jQuery("#list5").jqGrid('setRowData',11,{amount:"333.00",tax:"33.00",total:"366.00",note:"<img src='images/user1.gif'/>"}); 382 if(su) 383 alert("Succes. Write custom code to update row in server"); 384 else 385 alert("Can not update"); 386 }); 387 jQuery("#a4").click( function(){ 388 //添加第99行(id为99的) 389 var datarow = {id:"99",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}; 390 var su=jQuery("#list5").jqGrid('addRowData',99,datarow); 391 if(su) 392 alert("Succes. Write custom code to add data in server"); 393 else 394 alert("Can not update"); 395 }); 396 397 jQuery("#s1").click( function() { 398 //设置URL 399 jQuery("#list7").jqGrid('setGridParam',{url:"server.php?q=2"}).trigger("reloadGrid"); 400 }); 401 jQuery("#s2").click( function() { 402 //设置排序列 403 jQuery("#list7").jqGrid('setGridParam',{sortname:"amount",sortorder:"asc"}).trigger("reloadGrid"); 404 }); 405 jQuery("#s3").click( function() { 406 //设置升序或倒序 407 var so = jQuery("#list7").jqGrid('getGridParam','sortorder'); 408 so = so=="asc"?"desc":"asc"; 409 jQuery("#list7").jqGrid('setGridParam',{sortorder:so}).trigger("reloadGrid"); 410 }); 411 jQuery("#s4").click( function() { 412 //跳转到第二页 413 jQuery("#list7").jqGrid('setGridParam',{page:2}).trigger("reloadGrid"); 414 }); 415 jQuery("#s5").click( function() { 416 //设置每页显示15行 417 jQuery("#list7").jqGrid('setGridParam',{rowNum:15}).trigger("reloadGrid"); 418 }); 419 jQuery("#s6").click( function() { 420 //设置URL和数据格式 421 jQuery("#list7").jqGrid('setGridParam',{url:"server.php?q=1",datatype:"xml"}).trigger("reloadGrid"); 422 }); 423 jQuery("#s7").click( function() { 424 //设置Grid的名称 425 jQuery("#list7").jqGrid('setCaption',"New Caption"); 426 }); 427 jQuery("#s8").click( function() { 428 //设置Grid排序字段,根据名称排序 429 jQuery("#list7").jqGrid('sortGrid',"name",false); 430 }); 431 jQuery("#m1").click( function() { 432 //获取复选框被选中的id 433 var s = jQuery("#list9").jqGrid('getGridParam','selarrrow'); 434 alert(s); 435 }); 436 jQuery("#m1s").click( function() { 437 //设置选中第13行 438 jQuery("#list9").jqGrid('setSelection',"13"); 439 }); 440 jQuery("#ms1").click( function() { 441 var s = jQuery("#list10_d").jqGrid('getGridParam','selarrrow'); 442 alert(s); 443 }); 444 445 //Grid 查询 446 var timeoutHnd; 447 var flAuto = false; 448 function doSearch(ev){ 449 if(!flAuto) 450 return; 451 // var elem = ev.target||ev.srcElement; 452 if(timeoutHnd) 453 clearTimeout(timeoutHnd) 454 timeoutHnd = setTimeout(gridReload,500) 455 } 456 function gridReload(){ 457 var nm_mask = jQuery("#item_nm").val(); 458 var cd_mask = jQuery("#search_cd").val(); 459 jQuery("#bigset").jqGrid('setGridParam',{url:"bigset.php?nm_mask="+nm_mask+"&cd_mask="+cd_mask,page:1}).trigger("reloadGrid"); 460 } 461 function enableAutosubmit(state){ 462 flAuto = state; 463 jQuery("#submitButton").attr("disabled",state); 464 } 465 466 jQuery("#cm1").click( function() { 467 //显示选中行 468 var s; 469 s = jQuery("#list13").jqGrid('getGridParam','selarrrow'); 470 alert(s); 471 }); 472 jQuery("#cm1s").click( function() { 473 //选中编号为13的行 474 jQuery("#list13").jqGrid('setSelection',"13"); 475 }); 476 jQuery("#list13").jqGrid('navGrid','#pager13',{add:false,edit:false,del:false}, 477 {}, // edit parameters 478 {}, // add parameters 479 {reloadAfterSubmit:false} //delete parameters 480 ); 481 482 jQuery("#sids").click( function() { 483 //获取Grid中当页的所有ID 484 alert("Id's of Grid: \n"+jQuery("#list15").jqGrid('getDataIDs')); 485 }); 486 487 jQuery("#hc").click( function() { 488 //隐藏tax列 489 jQuery("#list17").jqGrid('navGrid','hideCol',"tax"); 490 }); 491 jQuery("#sc").click( function() { 492 //显示tax列 493 jQuery("#list17").jqGrid('navGrid','showCol',"tax"); 494 }); 495 }) 496 </script> 497 498 //本地数组数据:datatype: "local", 499 var mydata = [ 500 {id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 501 {id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 502 {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, 503 {id:"4",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 504 {id:"5",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 505 {id:"6",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, 506 {id:"7",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 507 {id:"8",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 508 {id:"9",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"} 509 ]; 510 for(var i=0;i<=mydata.length;i++) 511 jQuery("#list4").jqGrid('addRowData',i+1,mydata[i]); 512 513 <script type="text/javascript"> 514 jQuery().ready(function (){ 515 //父Grid(主Grid) 516 jQuery("#list1").jqGrid({ 517 url:'server.php?q=1', 518 //editurl:"someurl.php", 519 datatype: "json", //数据类型 datatype: "local", datatype: "xml", 520 colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'], 521 colModel:[ 522 {name:'id',index:'id', width:75}, 523 {name:'invdate',index:'invdate', width:90}, 524 {name:'name',index:'name', width:100}, 525 {name:'amount',index:'amount', width:80, align:"right"}, 526 {name:'tax',index:'tax', width:80, align:"right"}, 527 {name:'total',index:'total', width:80,align:"right"}, 528 {name:'note',index:'note', width:150, sortable:false} 529 ], 530 rowNum:10, //每页数据显示条数 531 rowList:[10,20,30], //每页数据显示条数 532 pager: jQuery('#pager1'), //Grid显示在id为pager1的div里面 533 sortname: 'id', //根据ID排序 534 viewrecords: true, //显示数据总记录数 535 sortorder: "desc", //倒序 536 hidegrid: false, //Grid是否隐藏 537 autowidth: true, //自动列宽 538 width: 500, //Grid 宽度 539 height: 200, //行高 height: "100%", 540 multiselect: true, //复选框 541 recordpos: 'left', //总记录显示位置:居左 542 mtype: "POST", 543 pgbuttons: false, 544 pgtext: false, 545 pginput: false, 546 multikey: "ctrlKey", 547 onSortCol: function(name,index){ 548 //点击排序列,根据哪列排序 549 alert("Column Name: "+name+" Column Index: "+index); 550 }, 551 ondblClickRow: function(id){ 552 //双击行 553 alert("You double click row with id: "+id); 554 }, 555 onSelectRow: function(ids) { //单击选择行 556 if(ids == null) { 557 ids=0; 558 if(jQuery("#list10_d").jqGrid('getGridParam','records') >0 ) { 559 jQuery("#list10_d").jqGrid('setGridParam',{url:"subgrid.php?q=1&id="+ids,page:1}); 560 jQuery("#list10_d").jqGrid('setCaption',"Invoice Detail: "+ids) .trigger('reloadGrid'); 561 } 562 } else { 563 jQuery("#list10_d").jqGrid('setGridParam',{url:"subgrid.php?q=1&id="+ids,page:1}); 564 jQuery("#list10_d").jqGrid('setCaption',"Invoice Detail: "+ids) .trigger('reloadGrid'); 565 } 566 }, 567 subGrid : true, //显示内部Grid(次Grid),单击行展开嵌套Grid 568 subGridUrl: 'subgrid.php?q=2', //内部Grid URL 569 subGridModel: [ { //内部Grid列 570 name : ['No','Item','Qty','Unit','Line Total'], 571 width : [55,200,80,80,80], 572 params: ['invdate'] //嵌套Grid参数 573 } ], 574 subGridRowExpanded: function(subgrid_id, row_id) { //Grid内部嵌套Grid 575 // we pass two parameters 576 // subgrid_id is a id of the div tag created whitin a table data 577 // the id of this elemenet is a combination of the "sg_" + id of the row 578 // the row_id is the id of the row // If we wan to pass additinal parameters to the url we can use 579 // a method getRowData(row_id) - which returns associative array in type name-value 580 // here we can easy construct the flowing 581 var subgrid_table_id, pager_id; 582 subgrid_table_id = subgrid_id+"_t"; 583 pager_id = "p_"+subgrid_table_id; 584 $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>"); 585 jQuery("#"+subgrid_table_id).jqGrid({ 586 url:"subgrid.php?q=2&id="+row_id, 587 datatype: "xml", 588 colNames: ['No','Item','Qty','Unit','Line Total'], 589 colModel: [ 590 {name:"num",index:"num",width:80,key:true}, 591 {name:"item",index:"item",width:130}, 592 {name:"qty",index:"qty",width:70,align:"right"}, 593 {name:"unit",index:"unit",width:70,align:"right"}, 594 {name:"total",index:"total",width:70,align:"right",sortable:false} 595 ], 596 rowNum:20, 597 pager: pager_id, 598 sortname: 'num', 599 sortorder: "asc", 600 height: '100%' //自动适应行高 601 }); 602 jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:false,del:false}); 603 }, 604 subGridRowColapsed: function(subgrid_id, row_id) { 605 // this function is called before removing the data 606 //var subgrid_table_id; 607 //subgrid_table_id = subgrid_id+"_t"; 608 //jQuery("#"+subgrid_table_id).remove(); 609 }, 610 loadComplete: function(){ //加载完成(初始加载),回调函数 611 var ret; 612 alert("This function is executed immediately after\n data is loaded. We try to update data in row 13."); 613 ret = jQuery("#list15").jqGrid('getRowData',"13"); 614 if(ret.id == "13"){ 615 jQuery("#list15").jqGrid('setRowData',ret.id,{note:"<font color='red'>Row 13 is updated!</font>"}) 616 } 617 }, 618 caption:"Grid Example" //Grid名称 619 }).navGrid('#pager1',{edit:false,add:false,del:false}); 620 //jQuery("#list6").jqGrid('navGrid',"#pager6",{edit:false,add:false,del:false}); = .navGrid('#pager1',{edit:false,add:false,del:false}); 621 //添加查询文本框 622 jQuery("#list7").jqGrid('navGrid','#pager7',{edit:false,add:false,del:false,refresh:false,searchtext:"Find"}); 623 //查询和刷新按钮居右 624 jQuery("#list9").jqGrid('navGrid','#pager9',{add:false,del:false,edit:false,position:'right'}); 625 //编辑行,添加Add、Edit、Save、Cancel按钮 //<script src="rowedex3.js" type="text/javascript"> </script> 626 jQuery("#43rowed3").jqGrid('inlineNav',"#p43rowed3"); //<table id="rowed3"></table> <div id="prowed3"></div> 627 628 //子Grid 629 jQuery("#list10_d").jqGrid({ 630 height: 100, 631 url:'subgrid.php?q=1&id=0', 632 datatype: "json", 633 colNames:[ 634 'No','Item', 'Qty', 'Unit','Line Total' 635 ], 636 colModel:[ 637 {name:'num',index:'num', width:55}, 638 {name:'item',index:'item', width:180}, 639 {name:'qty',index:'qty', width:80, align:"right"}, 640 {name:'unit',index:'unit', width:80, align:"right"}, 641 {name:'linetotal',index:'linetotal', width:80,align:"right", sortable:false, search:false} 642 ], 643 rowNum:5, 644 rowList:[5,10,20], 645 pager: '#pager10_d', 646 sortname: 'item', 647 viewrecords: true, 648 sortorder: "asc", 649 multiselect: true, 650 caption:"Invoice Detail" 651 }).navGrid('#pager10_d',{add:false,edit:false,del:false}); 652 653 jQuery("#a1").click( function(){ 654 //获取Grid中选中的行id 655 var id = jQuery("#list5").jqGrid('getGridParam','selrow'); 656 if (id) { 657 var ret = jQuery("#list5").jqGrid('getRowData',id); 658 alert("id="+ret.id+" invdate="+ret.invdate+"..."); 659 } else { 660 alert("Please select row"); 661 } 662 }); 663 jQuery("#a2").click( function(){ 664 //删除第12行 665 var su=jQuery("#list5").jqGrid('delRowData',12); 666 if(su) 667 alert("Succes. Write custom code to delete row from server"); 668 else 669 alert("Allready deleted or not in list"); 670 }); 671 jQuery("#a3").click( function(){ 672 //修改第11行 673 var su=jQuery("#list5").jqGrid('setRowData',11,{amount:"333.00",tax:"33.00",total:"366.00",note:"<img src='images/user1.gif'/>"}); 674 if(su) 675 alert("Succes. Write custom code to update row in server"); 676 else 677 alert("Can not update"); 678 }); 679 jQuery("#a4").click( function(){ 680 //添加第99行(id为99的) 681 var datarow = {id:"99",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}; 682 var su=jQuery("#list5").jqGrid('addRowData',99,datarow); 683 if(su) 684 alert("Succes. Write custom code to add data in server"); 685 else 686 alert("Can not update"); 687 }); 688 689 jQuery("#s1").click( function() { 690 //设置URL 691 jQuery("#list7").jqGrid('setGridParam',{url:"server.php?q=2"}).trigger("reloadGrid"); 692 }); 693 jQuery("#s2").click( function() { 694 //设置排序列 695 jQuery("#list7").jqGrid('setGridParam',{sortname:"amount",sortorder:"asc"}).trigger("reloadGrid"); 696 }); 697 jQuery("#s3").click( function() { 698 //设置升序或倒序 699 var so = jQuery("#list7").jqGrid('getGridParam','sortorder'); 700 so = so=="asc"?"desc":"asc"; 701 jQuery("#list7").jqGrid('setGridParam',{sortorder:so}).trigger("reloadGrid"); 702 }); 703 jQuery("#s4").click( function() { 704 //跳转到第二页 705 jQuery("#list7").jqGrid('setGridParam',{page:2}).trigger("reloadGrid"); 706 }); 707 jQuery("#s5").click( function() { 708 //设置每页显示15行 709 jQuery("#list7").jqGrid('setGridParam',{rowNum:15}).trigger("reloadGrid"); 710 }); 711 jQuery("#s6").click( function() { 712 //设置URL和数据格式 713 jQuery("#list7").jqGrid('setGridParam',{url:"server.php?q=1",datatype:"xml"}).trigger("reloadGrid"); 714 }); 715 jQuery("#s7").click( function() { 716 //设置Grid的名称 717 jQuery("#list7").jqGrid('setCaption',"New Caption"); 718 }); 719 jQuery("#s8").click( function() { 720 //设置Grid排序字段,根据名称排序 721 jQuery("#list7").jqGrid('sortGrid',"name",false); 722 }); 723 jQuery("#m1").click( function() { 724 //获取复选框被选中的id 725 var s = jQuery("#list9").jqGrid('getGridParam','selarrrow'); 726 alert(s); 727 }); 728 jQuery("#m1s").click( function() { 729 //设置选中第13行 730 jQuery("#list9").jqGrid('setSelection',"13"); 731 }); 732 jQuery("#ms1").click( function() { 733 var s = jQuery("#list10_d").jqGrid('getGridParam','selarrrow'); 734 alert(s); 735 }); 736 737 //Grid 查询 738 var timeoutHnd; 739 var flAuto = false; 740 function doSearch(ev){ 741 if(!flAuto) 742 return; 743 // var elem = ev.target||ev.srcElement; 744 if(timeoutHnd) 745 clearTimeout(timeoutHnd) 746 timeoutHnd = setTimeout(gridReload,500) 747 } 748 function gridReload(){ 749 var nm_mask = jQuery("#item_nm").val(); 750 var cd_mask = jQuery("#search_cd").val(); 751 jQuery("#bigset").jqGrid('setGridParam',{url:"bigset.php?nm_mask="+nm_mask+"&cd_mask="+cd_mask,page:1}).trigger("reloadGrid"); 752 } 753 function enableAutosubmit(state){ 754 flAuto = state; 755 jQuery("#submitButton").attr("disabled",state); 756 } 757 758 jQuery("#cm1").click( function() { 759 //显示选中行 760 var s; 761 s = jQuery("#list13").jqGrid('getGridParam','selarrrow'); 762 alert(s); 763 }); 764 jQuery("#cm1s").click( function() { 765 //选中编号为13的行 766 jQuery("#list13").jqGrid('setSelection',"13"); 767 }); 768 jQuery("#list13").jqGrid('navGrid','#pager13',{add:false,edit:false,del:false}, 769 {}, // edit parameters 770 {}, // add parameters 771 {reloadAfterSubmit:false} //delete parameters 772 ); 773 774 jQuery("#sids").click( function() { 775 //获取Grid中当页的所有ID 776 alert("Id's of Grid: \n"+jQuery("#list15").jqGrid('getDataIDs')); 777 }); 778 779 jQuery("#hc").click( function() { 780 //隐藏tax列 781 jQuery("#list17").jqGrid('navGrid','hideCol',"tax"); 782 }); 783 jQuery("#sc").click( function() { 784 //显示tax列 785 jQuery("#list17").jqGrid('navGrid','showCol',"tax"); 786 }); 787 }) 788 </script> 789 790 //本地数组数据:datatype: "local", 791 var mydata = [ 792 {id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 793 {id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 794 {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, 795 {id:"4",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 796 {id:"5",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 797 {id:"6",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, 798 {id:"7",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 799 {id:"8",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 800 {id:"9",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"} 801 ]; 802 for(var i=0;i<=mydata.length;i++) 803 jQuery("#list4").jqGrid('addRowData',i+1,mydata[i]);