Kogrid:网格的最后一列只是部分可见

时间:2013-09-04 11:26:09

标签: javascript knockout.js kogrid

在koGrid 2.1.1中:

不知何故,网格的最后一列只是部分可见。

我使用网格的默认配置以一个示例重现了这个错误。

HTML:

<div class="gridStyle" data-bind="koGrid: gridOptions"></div>

CSS:

.gridStyle {
border: 1px solid rgb(212, 212, 212);
width: 400px;
height: 300px;
}

脚本:


function mainVm() {
    var self = this;
    this.myData = ko.observableArray([{
        name: "Moroni",
        age: 50
    }, {
        name: "Tiancum",
        age: 43
    }, {
        name: "Jacob",
        age: 27
    }, {
        name: "Nephi",
        age: 29
    }, {
        name: "Enos",
        age: 34
    }]);
    this.gridOptions = {
        data: self.myData
    };
};
ko.applyBindings(new mainVm());

小提琴:http://jsfiddle.net/4hUcc/1/

我找不到导致这种情况的原因。有任何线索吗?

2 个答案:

答案 0 :(得分:2)

为了计算滚动条的宽度和高度,一旦加载了javascript文件,koGrid会在你的身体中添加一个临时div。

因此,如果在HTML的头部添加koGrid-x.js,则不会加载正文,滚动条测量将失败。

另一方面,如果你在body元素的末尾添加koGrid-x.js文件,它将被加载,一切都应该按预期工作。

答案 1 :(得分:1)

在koGrid-2.1.1.debug.js中找到它,行2098 - 2114:


 var getWidths = function () {
        var $testContainer = $('');
        $testContainer.appendTo('body');
        // 1. Run all the following measurements on startup!
        //measure Scroll Bars
        $testContainer.height(100).width(100).css("position", "absolute").css("overflow", "scroll");
        $testContainer.append('');
        window.kg.domUtilityService.ScrollH = ($testContainer.height() - $testContainer[0].clientHeight);
        window.kg.domUtilityService.ScrollW = ($testContainer.width() - $testContainer[0].clientWidth);
        $testContainer.empty();
        //clear styles
        $testContainer.attr('style', '');
        //measure letter sizes using a pretty typical font size and fat font-family
        $testContainer.append('M');
        window.kg.domUtilityService.LetterW = $testContainer.children().first().width();
        $testContainer.remove();
    };

window.kg.domUtilityService.ScrollH window.kg.domUtilityService.ScrollW 的计算方法不正确。修正了我的问题,将它们都设置为0.(零)

谢谢!