【发布时间】:2013-02-21 15:23:12
【问题描述】:
我用的是jqgrid 4.4.4,好像遇到了问题。
问题 1:已修复
用例
我希望 jqgrid 在“启动”时隐藏而不会使我的数据加倍。
解决方案
通过移除 scroll:true,数据不会像以前那样翻倍。
问题 2:已修复
当数据超过jqgrid的高度时,会出现滚动条。但是滚动条与图片上的数据重叠。
我已经尝试过 autowidth:true、scrollOffset、定义像素宽度 ++,但似乎没有任何效果。
我正在从事一个相当大的项目,我喜欢使用 jqgrid。但我认为有必要让这些问题过时。
代码:
var grid = $("#table").jqGrid(
{
datatype: "local",
height: "auto",
width: 1000,
scroll: true,
colNames:['','1992','1997','2002','2007',
'2012','2017','2022','2027','2032','2037'],
colModel: [{name:'Name',index:'Name', align: 'left'},
{name:'Col0',index:'Col0'},{name:'Col1',index:'Col1'}
{name:'Col2',index:'Col2'},{name:'Col3',index:'Col3'},
{name:'Col4',index:'Col4'},{name:'Col5',index:'Col5'},
{name:'Col6',index:'Col6'},{name:'Col7',index:'Col7'},
{name:'Col8',index:'Col8'},{name:'Col9',index:'Col9'}],
multiselect: true,
caption: "Table",
shrinkToFit: true,
data: [{ Name: 'County1', Col0: '11 273', Col1: '11 431',
Col2: '12 515', Col3: '13 414', Col4: '15 143',
Col5: '16 852', Col6: '18 362', Col7: '19 698',
Col8: '20 821', Col9: '21 734' },
{ Name: 'County2', Col0: '22 530', Col1: '24 457',
Col2: '25 763', Col3: '27 247', Col4: '28 970',
Col5: '31 135', Col6: '32 977', Col7: '34 649',
Col8: '36 020', Col9: '37 158' },
{ Name: 'County3', Col0: '11 909', Col1: '12 734',
Col2: '14 037', Col3: '14 873', Col4: '17 284',
Col5: '20 083', Col6: '22 877', Col7: '25 603',
Col8: '28 064', Col9: '30 210' },
{ Name: 'County4', Col0: '10 465', Col1: '12 165',
Col2: '12 962', Col3: '13 890', Col4: '15 154',
Col5: '16 293', Col6: '17 284', Col7: '18 174',
Col8: '18 897', Col9: '19 446' },
{ Name: 'County5', Col0: '13 300', Col1: '14 350',
Col2: '15 777', Col3: '16 791', Col4: '17 809',
Col5: '18 971', Col6: '19 931', Col7: '20 785',
Col8: '21 452', Col9: '21 930' }]
//hiddengrid: true
}
);
CSS:
.ui-jqgrid-bdiv {
max-height:300px;
}
描述我的问题的JSFiddle: http://jsfiddle.net/aalmaas/3z7s7/2/
JSFiddle 正是我想要的:http://jsfiddle.net/aalmaas/LBfCV/。但是,我希望将 jqgrid 高度设置为“自动”,而不是确定的高度。
解决方案:
非常感谢 Oleg 帮助我。
如果你设置jqgrid的高度,垂直滚动条的行为是不同的,当你定义它为height时:“auto”。
这就是我最终做的:
如果有滚动条可见,我首先调用 setGridWidth 来减小网格的宽度,并将收缩参数设置为 true。宽度考虑到垂直滚动条需要有空间。然后我再次调用 setGridWidth 并将收缩参数设置为 false 以恢复网格的先前宽度。
【问题讨论】:
-
您使用的代码可以解释许多可以用不同方式解释的东西。问题是 jqGrid 可以以 不同 的方式使用,任何你没有准确解释你的情况。例如,您写道:'我希望 jqgrid 在“启动”时被初始化和隐藏。'。真的不清楚你的意思。选项
hiddengrid:true并没有真正做到这一点。您是使用datatype: "local"还是想使用datatype: "json"从服务器加载数据?许多其他 jqGrid 选项和您的自定义 CSS 样式对于重现您描述的问题也很重要。 -
感谢您的快速回复!我更新了我正在使用的代码。问题是我想在我第一次进入页面时隐藏 jqgrid。如果我想显示它,我可以按右侧的展开按钮。 hiddengrid:true 使我第一次进入页面时隐藏网格,但是数据加倍,所以它变成了两倍大。当我有更多时间时,我将很快制作一个 jsfiddle。也许这样可以更好地解释问题。
-
我还是不明白你。为什么要修改标准
jqgrid类?你想做什么?标准方法是将寻呼机元素的<table>和<div>放置在另一个outer<div>内。您可以为 outer<div>设置所需的任何样式,而无需修改 jqGrid 的任何样式。您发布的代码不清楚。colModel: colmodel[0]和data: data[0]选项不提供任何信息。这就像发布$("#table").jqGrid(options);或只是发布/*my code*/。无法使用这些信息重现您描述的问题。 -
我建议你删除
scroll: true选项。 -
好吧.. 我修好了。添加了一个jsfiddle,所以你可以看到我的问题。我删除了 scroll:true 属性,然后我的数据没有翻倍。我做了这里的建议:stackoverflow.com/questions/5895801/… 如果达到某个高度,则使 jqgrid 滚动。但是,这会使垂直滚动条与右侧的列重叠。如果我定义一个高度而不是“自动”,它会按照我想要的方式工作。但是,我宁愿不定义高度,而是“自动”,所以 jqgrid 会缩放,如果需要会出现滚动
标签: javascript jquery jqgrid