我使用的是jQuery 1.5.1,jQuery UI 1.8.13和jqGrid 4.2.0。與tabletogrid和navgrid問題的多個表
這裏是我想要做的事:
我想要的jqGrid應用到幾個表(均具有相同的結構)使用tabletoGrid。每個表具有相同的類,但也具有唯一的自動生成的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>
謝謝,刪除引用「真實」,現在編輯表單很好,但仍然沒有按鈕的導航傳呼機。關於不必要的選項,我首先調用沒有選項的tabletogrid,讓內部生成的選項對象打印到控制檯(使用JSON.stingify),在字符串上運行JSON修飾符並將該字符串用作選項對象。 任何想法爲什麼導航傳呼機不顯示? 再次感謝。 – jquerybug
@jquerybug:'jqGrid'的'pager'參數必須在'oGridOptions'中定義,並且以後不能用'setGridParam'修改(參見[documentation]中的「Can be changed?」列中的值。 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options))。所以你應該定義'oGridOptions'。您應該在之前創建相應的div'「#pagernavX」'。您也可以考慮使用'toppager:true'參數(請參閱[這裏](http://stackoverflow.com/questions/4402455/unable-to-position-pager-navigation-bar-above-jqgrid/4402903#4402903) )。 – Oleg
謝謝。我沒有使用額外的導航分區,只是用來支持導航。 我真誠感謝您的回答,他們對我的幫助很大。我在這裏和你的樣品中從你對其他問題的回答中學到了很多東西。你應該寫一本關於jqgrid的書。這是非常需要的。 – jquerybug