在滚动数据加载不使用双jqGrid

时间:2014-01-24 07:03:26

标签: jquery jqgrid

我正在制作一个页面,其中有两个不同的jqGrids显示在两个不同的标签中。

这是First jqGridsecond one

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)

我认为可能存在一些导致此问题的冲突。

有谁能告诉我我错过了什么?

1 个答案:

答案 0 :(得分:1)

滚动时加载JqGrid动态数据,用于计算高度。 jqGrid中每行的高度保持不变。它根据编号计算网格的总高度。行*固定行高和存储它。但是在jqGrid中,当一行不包含整个数据时,它会增加高度以便包含它。

滚动到最后一行时如何加载数据?

在每个滚动条上,jqGrid计算您已经遍历的高度,并使用最初计算的总高度减去该高度。如果结果为零,则它发送对所需数据的请求。但是,如果您的任何行的高度大于固定的行高,则会破坏高度的计算。这意味着jqGrid无法判断您是否已滚动到最后一行,反过来又无法发送动态数据加载请求

所以在这个问题中,第二个jqGrid的行高度超过了通常的固定值,这就是为什么它没有在滚动上加载数据

这是我从这个问题中学到的。 如果我错了,请纠正我