我正在制作一个页面,其中有两个不同的jqGrids显示在两个不同的标签中。
jqGrids都有不同的网址但配置相同。
applicationLog.js
mygrid.jqGrid({
url : "getApplicationLog.action",
datatype : "json",
mtype : "GET",
colNames : ["Id", usernameheader,messageheader,dateofgeneration/*,"ModuleName"*/],
colModel : cmapplicationlog,
height : 300,
width : $('#tabs').width()-50,
pager : "#papplicationlog",
ExpandColumn: 'Message',
loadonce : false,
ShrinkToFit : true,
gridview : true,
hoverrows : true,
overflow : scroll,
scroll : 1,
rownumbers : true,
rowNum : 100,
viewrecords : true,
sortorder : "asc",
jsonReader :{
root : 'appLog',
repeatitems : false,
page : "page",
total : "total",
records : "records"
}
applicationErrorLog.js
myErrorgrid.jqGrid({
url : "getApplicationErrorLog.action",
datatype : "json",
mtype : "GET",
colNames : ["Id", usernameheader, messageheader, dateofgeneration/*, "ModuleName"*/],
colModel : cmapplicationerrorlog,
height : 300,
width : $('#tabs').width()-50,
pager : "#papplicationerrorlog",
ExpandColumn: 'Message',
loadonce : false,
//scrollrows : true,
ShrinkToFit : true,
scrollOffset: 0,
gridview : true,
hoverrows : true,
overflow : scroll,
scroll : 1,
rownumbers : true,
rowNum : 100,
//rowList : [15,20,30,40,50,60,70,80,90,100],
viewrecords : true,
sortorder : "asc",
jsonReader :{
root : 'appLog',
repeatitems : false,
page : "page",
total : "total",
records : "records"
}
我已使用网格的scroll:1
选项动态加载数据。
第一个jqGrid上的数据正在滚动时正确加载。但是当我切换到下一个选项卡(ApplicationErrorLog)网格时,数据不会在滚动时加载。甚至没有发送请求来获取记录。控制台上没有任何错误迹象。
我也将这些文件包含在我的jsp中
1.)jquery-1.5.2.min.js
2.)jquery-ui.min.js
3.)grid.locale-en.js
4.)jquery.alerts.js
5.)jquery.jqGrid.src.js(jquery.jqGrid-4.3.2)
我认为可能存在一些导致此问题的冲突。
有谁能告诉我我错过了什么?
答案 0 :(得分:1)
滚动时加载JqGrid动态数据,用于计算高度。 jqGrid中每行的高度保持不变。它根据编号计算网格的总高度。行*固定行高和存储它。但是在jqGrid中,当一行不包含整个数据时,它会增加高度以便包含它。
滚动到最后一行时如何加载数据?
在每个滚动条上,jqGrid计算您已经遍历的高度,并使用最初计算的总高度减去该高度。如果结果为零,则它发送对所需数据的请求。但是,如果您的任何行的高度大于固定的行高,则会破坏高度的计算。这意味着jqGrid无法判断您是否已滚动到最后一行,反过来又无法发送动态数据加载请求
所以在这个问题中,第二个jqGrid的行高度超过了通常的固定值,这就是为什么它没有在滚动上加载数据
这是我从这个问题中学到的。 如果我错了,请纠正我