【发布时间】:2016-12-30 18:32:10
【问题描述】:
我是 JQgrid 的新手,一直试图冻结网格中的第一列,因此水平滚动不会影响该列。
我在colModel 中有frozen: true,并拨打了Jquery("#grid").jqGrid('setFrozenColumns');。
这正确地冻结了 DATA 列,但是当我向右滚动时,列标题会随着我滚动。我怎样才能冻结标题呢?
非常感谢!
示例代码:
jQuery("#taskGrid").jqGrid({
datatype: "jsonstring",
colNames:['task ID','TASK Name', 'ROLE Info'],
colModel:[
{name:'taskId',index:'taskId', width:100, frozen: true},
{name:'taskName',index:'taskName', width:200},
{name: 'roleInfo.1', index: 'roleInfo.1', width:100, formatter: 'checkbox' }
],
jsonReader: {repeatitems: false},
datastr: JSON.parse(document.form.taskData.value),
rowNum:50,
pager: '#pager2',
sortname: 'taskId',
viewrecords: true,
sortorder: "desc",
caption:"JSON Example",
height: "750",
width: "350",
shrinkToFit: false
});jQuery("#taskGrid").jqGrid('setFrozenColumns');
【问题讨论】:
-
您使用的是什么版本的 jqGrid?我认为它在某些旧版本中无法正常工作。 stackoverflow.com/a/8486592/1491895 表示它是在 4.3 中实现的。它在stackoverflow.com/a/8486592/1491895的演示中工作
-
@Barmar 我使用的是 5.1.0 版。除了我使用数据类型:jsonstring 和 datastr 之外,我的网格与那个演示非常相似。没有在网上看到任何关于它与 IE11 不兼容的信息,但那是我正在使用的浏览器。
-
@newToJQGrid:尝试使用free jqGrid 4.13.4,而不是您当前使用的Guriddo jqGrid JS 5.1.0。首先,它在冻结列中包含许多修复,包含许多增强功能,并且它与 Guriddo jqGrid JS 相对免费(参见价格here)。要试用免费的 jqGrid,您可以直接从 CDN 加载所有 jqGrid(请参阅 the wiki article)。
-
@newToJQGrid:我建议您另外考虑使用
datatype: "local"和data: jQuery.parseJSON(document.form.taskData.value)而不是datatype: "jsonstring"和datastr。如果 jqGrid 对您来说是新的,那么来自here 的信息可能对您来说也很有趣。 -
@Oleg:谢谢你的推荐。切换到数据类型:“本地”并释放 jqGrid 后,冻结按预期工作。
标签: javascript jquery jqgrid jqgrid-formatter