0

我正在加载一个包含大约 38 列数据的 jqgrid。前 6 列已冻结,其他列未冻结(日期和月份取决于组合框。请在此处查看示例图像)。数据加载完 jqgrid 后,我想将 jqgrid 自动滚动到当前日期的特定列,紧挨着冻结的列的最后一列。滚动将取决于当天(例如:如果今天是 2012 年 7 月 26 日,它将自动滚动到该特定日期,依此类推)。

另一个是当那天收到数据时,单元格会闪烁成红色和绿色(那些有数据或值的单元格会闪烁成两种颜色),类似的。

有谁知道如何做到这一点?
谢谢!. 请在此处查看布局的示例图像。

4

2 回答 2

1

我使用此功能滚动到当前日期列

function scrollToCurrentDate(currentDate,jqGrid){
    var width =0 ;
    var frozenWidth = 0;
    for(var i =0,col;col=jqGrid[0].p.colModel[i];i++){
        width += $("#"+jqGrid[0].id+"_"+col.name)[0].offsetWidth;
        if(col.name.indexOf('Qty')==0){
            var day = col.name.replace('Qty','');
            var date = $("#CurrentYear").val()+'-'+$("#CurrentMonth").val()+'-'+(parseInt(day)<10?"0"+day:day);

            if(currentDate == date){  
                var columnWidth = $("#"+jqGrid[0].id+"_"+col.name)[0].offsetWidth;
                $(".ui-jqgrid-hdiv").scrollLeft((width-columnWidth)-frozenWidth);
                $(".ui-jqgrid-bdiv").scrollLeft((width-columnWidth)-frozenWidth);
                break;
            }
        }
        else{
          frozenWidth += $("#"+jqGrid[0].id+"_"+col.name)[0].offsetWidth;    
        }
    }
}

然后我在 gridComplete 中调用这个函数:

scrollToCurrentDate(currentDate,$("#table"));

在闪烁效果中,代码如下。

var blinkStatus=false;
var blink = function(){
        //$(".blinker").toggle();
        $(".txtBlinker").css("background-color", blinkStatus?"#CFC":"#FF4F4F");
        blinkStatus=!blinkStatus;
    };
    $(document).ready(function() {

        setInterval(blink, 1000);
    });
于 2012-08-02T01:29:27.190 回答
0

好的,我希望你自己编写代码,我可以给你一些想法。

实现jqgrid的LoadComplete函数并检查哪一列具有当前日期以及在该列上调用jquery的焦点方法。

会是这样的

var Id=//具有当前日期列的行的id。

通过使用 jquery 选择器获取该列,您知道使用 tr 和 td,他们将有一些 id,检查开发人员工具,然后在该列上调用 jquery 的焦点方法

或者,如果您希望该列具有闪烁效果,

检查这个

http://archive.plugins.jquery.com/project/blink ,

让我知道是否还有其他问题。

PS-如果对您有帮助,请将其标记为答案。

于 2012-07-26T06:41:51.563 回答