jQuery 1.5.1, jQuery UI 1.8.13 및 jqGrid 4.2.0을 사용하고 있습니다. 여기 tabletgrid 및 navgrid 문제가있는 다중 테이블
내가 할 노력하고 무엇 :내가 tabletoGrid를 사용하여 여러 테이블 (모두 동일한 구조를 가지고)에있는 jqGrid를 적용하려합니다. 각 테이블에는 동일한 클래스가 있지만 고유 한 자동 생성 된 ID도 있습니다. 또한 각 테이블 다음에 고유 ID가있는 div가 있습니다.
각 테이블에 해당하는 링크가 있습니다.이 링크를 클릭하면 해당 테이블에 대한 행 편집 팝업이 나타납니다.
테이블에 모두 jqGrid가 잘 적용됩니다. 문제 없습니다. 그러나 내비게이션 호출기는 호출기 div에 나타나지 않으며 양식 편집 입력 컨트롤도 팝업 편집 상자 안에 없습니다. 편집 양식 팝업이 나타나지 만 이전, 다음, 제출 및 취소 버튼 만 있지만 필드에 대한 입력란은 없습니다.
일부 포함 파일이 누락 되었습니까? javascript 오류가 표시되지 않습니다. 어떤 도움이라도 대단히 감사합니다. 감사.
- jqr
<link rel="stylesheet" href="/js/jquery1.8.13/css/custom-theme/jquery-ui-1.8.13.custom.css" />
<link rel="stylesheet" href="/js/jqgrid4.2.0/css/ui.jqgrid.css" />
<link rel="stylesheet" href="/js/jqgrid4.2.0/plugins/ui.multiselect.css" />
<script type="text/javascript" src="/js/jquery1.8.13/js/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="/js/jquery1.8.13/js/jquery-ui-1.8.13.custom.min.js"></script>
<script type="text/javascript" src="/js/jqGrid4.2.0/js/i18n/grid.locale-en.js"></script>
<script type="text/javascript" src="/js/jqGrid4.2.0/plugins/ui.multiselect.js"></script>
<script type="text/javascript" src="/js/jqGrid4.2.0/src/grid.tbltogrid.js" ></script>
<script type="text/javascript" src="/js/jqGrid4.2.0/js/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="/js/jqGrid4.2.0/src/grid.formedit.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var editOpt = {
editData:{
myparam:function(){
return "myval";
}
},
height:240,
reloadAfterSubmit: true,
editCaption:'Edit Recordxxx',
bSubmit:'Save',
url:'someurl.php',
closeAfterEdit:true,
viewPagerButtons:false
};
var oGridOptions =
{
"colNames":[
"Field1",
"ReField1",
"Head",
"Line Item",
"Modified By",
"Date"
],
"colModel":[
{
"name":"Field1",
"index":"Field1",
"width":65,
"title":true,
"hidden":false,
"widthOrg":65,
"resizable":true,
"sortable":true,
"edittype":"text",
"editable":"true",
"editoptions":{
"size":"10"
}
},
{
"name":"ReField1",
"index":"ReField1",
"width":71,
"title":true,
"hidden":false,
"widthOrg":75,
"resizable":true,
"sortable":true,
"edittype":"text",
"editable":"true",
"editoptions":{
"size":"10"
}
},
{
"name":"Head",
"index":"Head",
"width":48,
"title":true,
"hidden":false,
"widthOrg":50,
"resizable":true,
"sortable":true,
"edittype":"text",
"editable":"true",
"editoptions":{
"size":"10"
}
},
{
"name":"Line_Item",
"index":"Line_Item",
"width":600,
"title":true,
"hidden":false,
"widthOrg":631,
"resizable":true,
"sortable":true,
"edittype":"text",
"editable":"true",
"editoptions":{
"size":"10"
},
"classes": "LineItemText"
},
{
"name":"Modified_By",
"index":"Modified_By",
"width":190,
"title":true,
"hidden":false,
"widthOrg":200,
"resizable":true,
"sortable":true,
"edittype":"text",
"editable":"true",
"editoptions":{
"size":"10"
}
},
{
"name":"Date",
"index":"Date",
"width":96,
"title":true,
"hidden":false,
"widthOrg":100,
"resizable":true,
"sortable":true,
"edittype":"text",
"editable":"true",
"editoptions":{
"size":"10"
}
}
]
};
$.jgrid.edit.editCaption = "My Edit Caption";
$.jgrid.defaults.rownumbers = true;
$.jgrid.defaults.pgtext = "Page {0} of {1}";
tableToGrid("table.DataTablex", oGridOptions);
jQuery("table.DataTablex").each(function(i) {
var idx = i + 1;
var sid = "#table" + idx.toString();
var snavId = "#pagernav" + idx.toString();
jQuery(sid).jqGrid('setGridParam',{"pager":snavId});
jQuery(sid).jqGrid('navGrid',snavId,{edit: true, add: true, del: true}, editOpt);
$(".bedata").click(function(){
var iwhich = this.id;
var sTableId = "#table" + iwhich.toString();
var gr = jQuery(sTableId).jqGrid('getGridParam','selrow');
if(gr != null) {
jQuery(sTableId).jqGrid('editGridRow',gr,{height:280,reloadAfterSubmit:false});
}
else
alert("Please Select Row");
});
});
</script>
감사합니다. "true"를 따옴표를 제거 했으므로 이제는 편집 폼이 잘 나타나지만 여전히 탐색 페이저에는 버튼이 없습니다. 불필요한 옵션에 관해서는 먼저 옵션없이 tabletogrid를 호출하고 콘솔에서 내부적으로 생성 된 options 객체를 JSON.stingify로 인쇄하고 문자열에서 JSON beautifier를 실행 한 다음 해당 문자열을 옵션 객체로 사용했습니다. 내비게이션 호출기가 표시되지 않는 이유는 무엇입니까? 다시 한 번 감사드립니다. – jquerybug
@jquerybug :'jqGrid'의'pager' 매개 변수는'oGridOptions'에서 정의되어야하며'setGridParam'을 사용하여 나중에 변경할 수 없습니다 ([documentation]의 "Can can change?"열을 참조하십시오. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options)). 그래서 당신은'oGridOptions'을 정의해야합니다. 먼저 해당 divs "#pagernavX"를 만들어야합니다. 대안으로'toppager : true' 매개 변수를 사용할 수도 있습니다 ([here] (http://stackoverflow.com/questions/4402455/unable-to-position-pager-navigation-bar-above-jqgrid/4402903#4402903 참조)). 덕분에 – Oleg
.탐색을 위해 여분의 div를 사용하지 않고 방금 toppager를 사용했습니다. 답변에 진심으로 감사 드리며, 나를 크게 도왔습니다. 이 질문과 여기에서 나온 질문에 대한 답을 통해 많은 것을 배웠습니다. jqgrid에 대한 책을 써야합니다. 그것은 많이 필요합니다. – jquerybug