在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/
我找不到导致这种情况的原因。有任何线索吗?
答案 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.(零)
谢谢!