Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery LightSwitch HTML无限滚动错误_Jquery_Visual Studio Lightswitch_Lightswitch 2013 - Fatal编程技术网

Jquery LightSwitch HTML无限滚动错误

Jquery LightSwitch HTML无限滚动错误,jquery,visual-studio-lightswitch,lightswitch-2013,Jquery,Visual Studio Lightswitch,Lightswitch 2013,亲爱的 在我的屏幕中,我有一个列布局根,高度为Stretch to Container,其中有两行布局a和B,两者的高度也都是Stretch to Container。A和B中的每一个都包含一个包含上万条记录的表控制网格。这是正常的,因为LightSwitch页面显示结果,一次只获取45条记录,直到您滚动到底部,然后它获取接下来的45条记录等等。。。无限滚动 注意:两个栅格都具有适合内容的垂直对齐 但是,尝试在设计器中或在postRender方法中设置布局A的isVisible=false:co

亲爱的

在我的屏幕中,我有一个列布局根,高度为Stretch to Container,其中有两行布局a和B,两者的高度也都是Stretch to Container。A和B中的每一个都包含一个包含上万条记录的表控制网格。这是正常的,因为LightSwitch页面显示结果,一次只获取45条记录,直到您滚动到底部,然后它获取接下来的45条记录等等。。。无限滚动

注意:两个栅格都具有适合内容的垂直对齐

但是,尝试在设计器中或在postRender方法中设置布局A的isVisible=false:contentItem.isVisible=false并运行应用程序,现在B按预期占据了整个水平空间,但B中包含的表不知道何时分步提取记录,即使您没有滚动到底部,它会在45条记录之后不断获取45条记录,直到应用程序停止响应,浏览器崩溃。 如果隐藏B并显示A,则A的表也会发生相同的行为

我们试图在LightSwitch JS文件中跟踪问题,但没有成功。我们无法找到令人满意的解决办法


有人遇到过这种奇怪的行为并找到了解决办法吗?我们需要实现多个布局的类似选项卡的功能,并通过在其他布局上设置isVisible=false一次显示一个布局。

此缺陷似乎存在于Microsoft LightSwitch库中的tryLoadMoreEntities函数中

此函数通过将表格的高度与视图区域scrollHelper.viewHeight的高度进行比较,决定是否应向表格添加更多项目

不幸的是,当表的大小调整为适合内容并隐藏时,表的高度计算为零,这总是会导致通过调用loadMoreEntities方法加载更多的项

话虽如此,您应该能够通过如下修改此函数来纠正此缺陷:

function tryLoadMoreEntities(table) {
    var collection = table._collection;
    if (!collection) {
        return;
    }
    if (collection.state === _VisualCollectionState.idle) {
        var scrollHelper = table._scrollHelper,
            needMoreItems =
                table.data._isActivated &&
                table._tableElement.is(":visible") &&
                table._tableElement.height() - scrollHelper.viewTop <
                    2 * scrollHelper.viewHeight;
        if (needMoreItems) {
            loadMoreEntities(table);
        } else {
            endLoading(table);
        }
    }
}

此修订版引入了对table元素可见性的额外检查,这将防止您正在经历的连续加载。

克里斯,我真是太感谢您了,修复了它。请注意,有两个tryLoadMoreEntities函数,另一个用于列表视图,两个函数都可以用相同的方式进行更正Dear Chris,我想知道您是否也可以看看这个问题:今天晚些时候我会看一看,如果我能帮上忙,请告诉您