코드 복사 코드는 다음과 같습니다. <p>$(document).ready(function()<br>{<br> initPlsfList();<br>});<br>//初始化grid列表<br>function initPlsfList(){<br> //缓存表列数组,key 为页面元素的name ,value 对应数据库中的字段<br> var cellArray = new Array();<br> cellArray["zoneID"] ="ZONE_ID"; <br> cellArray["factorPG"] ="FACTOR_PG"; <br> cellArray["factorQG"] ="FACTOR_QG";<br> cellArray["factorPL"] ="FACTOR_PL";<br> cellArray["factorQL"] ="FACTOR_QL";<br> cellArray["valid"] ="VALID";<br> </p> <p> var caseID = '${caseID}';<br> $("#plsfList").jqGrid({<br> url:"<c:url value='/lfc/powerlsfactor/queryData?caseID= " caseID "' />",<br> 데이터 유형: "json",<br> mtype:"POST",<br> 높이: "auto",<br> 너비: "auto",<br> colNames: [<br> 'id', "& lt; fmt : message key ='Zone '/& gt;", <br> "<fmt:message key='pasf'/>", <br> "<fmt:message key='pisf'/>",<br> "<fmt:message key=' 라스프' />",<br> "<fmt:message key='lisf'/>",<br> 'modeID'<br> ],<br> colModel:[<br> {이름:'ID' ,색인:'id', 너비:100,hidden:true},<br> {이름:'유효',색인:'유효', 너비:100,editable:true,<br> 포맷터:formatValid,<br> editable:true,edittype:'checkbox',<br> 편집 옵션:{value:'1:0',defaultValue:'1'}<br> },<br> {name:'zoneName',index:'zoneName' , 너비:150,편집 가능:true},<br> {이름:'factorPG',index:'factorPG', 너비:100,editable:true},<br> {이름:'factorQG',index:'factorQG' , 너비:100,편집 가능:true},<br> {이름:'factorPL',index:'factorPL', 너비:100,editable:true},<br> {이름:'factorPL',index:'factorQL' , 너비:100,편집 가능:true},<br> {이름:'caseID',색인:'caseID', 너비:100,hidden:true},<br> ],<br> 행 번호:10,<br> rowList:[10,20,30],<br> pager: '',<br> cellEdit:true,<br> viewrecords: true,<br> jsonReader: { 반복 항목: false, id: "id" },<br> viewsortcols:[false,'horizontal',false],<br> sortable:false,<br> sortorder:"asc",<br> sortname:"id",<br> 다중 선택: <br> 셀URL :"<c:url value='/lfc/powerlsfactor/save'/>",<br> cellsubmit: 'remote',<br> GridComplete: function() {<br> var $selecAll = $(" #cb_plsfList");<br> var cb_title = "<fmt:message key='select.all' Bundle='${commonResources}'/>" ;<br> if($selecAll){<br> $selecAll.attr("title",cb_title);<br> }<br> //设置全选checkbox title<br> var rowIds = jQuery("#plsfList").jqGrid('getDataIDs');<br> for(var k=0; k<rowIds.length; k++) {<br> var curRowData = jQuery("#plsfList").jqGrid('getRowData', rowIds[k]);<br> var curChk = $("#"+rowIds[k]+"").find(":checkbox");<br> //curChk.attr('title', curRowData.modeName); //给checkbox赋予额外的属性值<br> }<br><br> },<br> onSortCol:function(index,iCol,sortorder){<br> return false ;<br> },<br> ondblClickRow: function (rowid,iRow,iCol,e) {<br> /*var $plsfList = $("#plsfList");<br> if (isRowNeedSave($plsfList)){<br> showMessage("请先保存");<br> }else{<br> $("#operate").val("update");<br> newrowid = rowid ;<br> $plsfList.setGridParam({cellEdit:false});<br> $plsfList.jqGrid('editRow', rowid, true);<br> //确定按钮可用<br> $("#confirm_btn").attr("disabled",false);<br><br> }*/<br> },<br> beforeSubmitCell:function(rowid, cellname, value, iRow, iCol){<br> //列提交前的拦截方法<br> var $plsfList = $("#plsfList") ;<br> var $editUrl = '<c:url value='/lfc/powerlsfactor/save'/>' ;<br> //设置列提交的url。updateCellName:要编辑的列名 ;updateCellValue :是编辑的值<br> $editUrl = addParamToUrl($editUrl,'updateCellName',iCol == 3 ? cellArray['zoneID'] :cellArray[cellname]);<br> $editUrl = addParamToUrl($editUrl,'updateCellValue',iCol == 3 ? $("#zone_id").val():value);<br> //给jqgrid 从新设置cellurl 值<br> $plsfList.setGridParam({cellurl:$editUrl});<br> return false ;<br> },<br> afterEditCell:function(rowid, cellname, value, iRow, iCol){<br> //动态修改lie时,当列 变为可修改状态时,给列add一个button,且列中元素不可编辑,点击button 弹出一个模态窗口,可以选择元素 ,赋值给grid当前编辑列中单行表单域中.<br> $("#"+rowid+" input[type='checkbox']").attr("checked",value == "<fmt:message key='case.valid'/>" ? true:false);<br> if(iCol==3){<br> $("#irowNum").val(rowid);<br> var $data = $("#"+rowid +">td"); //获取这个行里所有的td元素,即:获取所有子元素<br> $zoneInput = $data.find("input").eq("1") ;<br> $zoneInput.css("width","100px");<br> $zoneInput.attr("disabled",true);<br> $zoneInput.after("<input type='button' value='选择' onclick='fnCallDialogForEidt()' />");<br> }<br> }</p> <p> });</p> <p><br>//그리드에 새 행 추가<br>var newrowid;<br>function addRow()<br>{<br> $("#operate").val("");<br> var selectedId = $("#plsfList").jqGrid("getGridParam", "selrow") <br> var ids = jQuery("#plsfList").jqGrid('getDataIDs');<br> //가져오기 현재 최대 행 번호(데이터 번호) <br> var rowid = Math.max.apply(Math,ids) <br> //새로 추가된 행의 행 번호(데이터 번호)를 가져옵니다. <br> newrowid = rowid 1;<br> var dataRow = { <br> id: "",<br> 유효한:"",<br> zoneID:'',<br> FactorPG:'',<br> FactorQG:'',<br> FactorPL: '',<br> FactorQL:'',<br> caseID:''<br> } <br><br> //새로 추가된 행을 첫 번째 열에 삽입 <br> $(" #plsfList" ).jqGrid("addRowData", newrowid, dataRow, "first");<br> //그리드 셀을 편집할 수 없도록 설정<br> $("#plsfList").setGridParam({cellEdit:false });<br> //그리드 셀을 편집 가능하도록 설정<br> $('#plsfList').jqGrid('editRow', newrowid, false);<br> //확인 버튼 사용 가능<br> $( "#confirm_btn"). attr("disabled",false);<br> //추가된 열에 선택 버튼 추가<br> var $zoneInput = $("#" newrowid "_zoneName");<br> $ zoneInput.attr("disabled" ,true).css("width",100);<br> $zoneInput.after("<input type='button' value='select' onclick='fnCallDialogForEidt()' / >");<br><br>}</p> <p><br>function insertPlsf(){<br> var $plsfList = $("#plsfList") ;<br> var $operate = $("#operate").val();<br> // 그리드 셀을 편집 가능으로 설정<br> $plsfList.setGridParam({cellEdit:true});<br> //그리드 행을 편집 불가능으로 설정<br> //$plsfList.jqGrid('editRow', newrowid, false) ; <br> //접합 요청 URL<br> var url = '<%=basePath%>' "/lfc/powerlsfactor/save" ;<br> var $params = $plsfList.find("input[ id ^=" newrowid "]");<br> var $check_val = $params.eq(0).is(':checked') ? 1:0;<br> url = addParamToUrl(url,'valid', $ check_val);<br> url = addParamToUrl(url,'zoneID',$("#zone_id").val());<br> url = addParamToUrl(url,'factorPG',$params.eq(2) . val());<br> url = addParamToUrl(url,'factorQG',$params.eq(3).val());<br> url = addParamToUrl(url,'factorPL',$params.eq( 4 ).val());<br> url = addParamToUrl(url,'factorQL',$params.eq(5).val());<br><br> var $caseID = $("#caseID" ) .val();<br> url = addParamToUrl(url,'caseID',$caseID);</p> <p> $.ajax({url:url,type:"post",timeout:5000, <br> 성공:함수(데이터){<br> showMessage(data);<br> reloadGrid();<br> }<br> });<br> //새로 추가된 줄 번호는 처음에는 비어 있습니다<br> newrowid = '' ;<br> //확인 버튼을 사용할 수 없습니다<br> $("#confirm_btn"). attr( "비활성화됨",true);<br>}</p> <p><br>//영역 열 출력 내용 포맷<br>function formatZone(cellvalue, options, rowObject){<br> if(cellvalue == 0){<br> return 0;<br> }else if( 셀 값 == 1){<br> 반환 1;<br> }else if(셀 값 == 2){<br> 반환 2;<br> }else{<br> 반환 3;<br> }<br> }</p> <p><br>function isRowNeedSave($jqgrid){<br> var $editTr = $jqgrid.find("tr[editable=1]") ;<br> var flag = false ;<br> if( $editTr && $editTr.length > 0){<br> 플래그 = true ;<br> }<br> 반환 플래그 ;<br>}</p> <p><br>function cancel(){<br> reloadGrid();<br> //확인 버튼을 사용할 수 없습니다<br> $("#confirm_btn").attr("disabled",true);<br> //그리드 셀을 편집 가능하게 설정<br> $("#plsfList").setGridParam({cellEdit:true});<br> //그리드 셀을 편집 가능하게 설정<br> $('#plsfList') .jqGrid('editRow', newrowid, true);<br>}</p> <p> </p> <p>function fnCallDialogForEidt(){<br> //현재 줄 번호(데이터 번호) 가져오기 <br> var returnValue = "";<br> returnValue = window.showModalDialog("<c:url value='/ 요소 /zone/query?caseID=" $("#caseID").val() "' />",window,"");<br> if(returnValue==""||returnValue==null) <br> return;<br> var $plsfList = $("#plsfList");<br> var $params = $plsfList.find("input[id$='zoneName']");<br> var 이름 = returnValue.split(",");<br> $params.eq(0).val(names[1]);<br> $("#zone_id").val(names[0]);<br> }<br></p> </div> <img alt="" src="http://files.jb51.net/file_images/article/201311/20131108100036.png"><br><img alt="" src="http://files.jb51.net/file_images/article/201311/20131108100050.png">