使用MS lightswitch对列进行排序

时间:2017-02-27 04:14:12

标签: visual-studio-lightswitch lightswitch-2013

我在使用我的lightwitch应用程序时遇到了一些麻烦。当我单击表格中任何列旁边的排序箭头时,它会对相邻列进行排序,而不是我单击了排序箭头的列?还有其他人遇到过这个吗?enter image description here

1 个答案:

答案 0 :(得分:1)

今天早些时候调查了类似的问题后,我怀疑你在微软的LightSwitch库中遇到了一个小漏洞。

如果您的表包含其可见性设置为false的任何列,并且导致列排序被单击列之前的隐藏列数偏移,则会出现此缺陷。

如果是这种情况,您可以通过删除隐藏列来解决它,或者,当Microsoft提供LightSwitch库的源代码时,您可以修改库以纠正该漏洞。

如果您想要实施此更正,则需要通过在HTML客户端的default.htm文件中进行以下更改来引用LightMwitch库的未缩小版本(从最后删除.min)库脚本参考):

<!--<script type="text/javascript" src="Scripts/msls-?.?.?.min.js"></script>-->
<script type="text/javascript" src="Scripts/msls-?.?.?.js"></script>

上面一行中的问号将与您正在使用的LightSwitch版本有关。

然后,您需要在Scripts / msls - ?。?。?。js文件中找到sortTableByColumn函数,并对其代码进行以下修订:

    //var header = columnContentItems[cellIndex];
    var header = columnContentItems.filter(function (item) {
        return item.isVisible;
    })[cellIndex];

通过对columnContentItems数组应用过滤器,此更改确保在访问由cellIndex参数标识的必需元素时仅考虑可见列。