我使用的是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