sap.ui.table - 列上的FilterType不起作用

时间:2014-10-20 12:45:00

标签: sapui5

sap.ui.table.Column的filterType属性似乎不适合我。这是我的代码:

<table:Column sortProperty="abc" filterProperty="abc" filterType="sap.ui.model.type.Integer">  
    <table:label>  
        <Label text="abc"></Label>  
    </table:label>  
    <table:template>  
        <Label text="{modelName>abc}"></Label>  
    </table:template>  
</table:Column>  

abc包含一个数字作为字符串,例如“10”。值显示在表中,因此绑定是正确的。

排序也有效但不尊重Integer类型。我仍然得到一个类似于排序的字符串,以便在“10”之后显示条目“6”以进行升序排序。如果我执行sap.ui.getCore()。byId(“columnId”),则列甚至返回我设置的filterType。getFilterType();这到底有什么不对?

BR 克里斯

2 个答案:

答案 0 :(得分:1)

它适用于代码段。您可以单击列标题按降序或升序排序并过滤值。请检查。

&#13;
&#13;
<script id='sap-ui-bootstrap' type='text/javascript' src='https://sapui5.hana.ondemand.com/resources/sap-ui-core.js' data-sap-ui-libs="sap.m,sap.ui.commons,sap.ui.table,sap.viz" data-sap-ui-theme="sap_bluecrystal"></script>

<script id="view1" type="sapui5/xmlview">
    <mvc:View xmlns:core="sap.ui.core" xmlns:layout="sap.ui.commons.layout" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.ui.commons" xmlns:table="sap.ui.table" controllerName="my.own.controller" xmlns:html="http://www.w3.org/1999/xhtml">

        <table:Table id="testTable" rows="{/}">
            <table:Column sortProperty="abc" filterProperty="abc" filterType="sap.ui.model.type.Integer">
                <table:label>
                    <Label text="abc"></Label>
                </table:label>
                <table:template>
                    <Label text="{abc}"></Label>
                </table:template>
            </table:Column>
            <table:Column>
                <table:label>
                    <Label text="abc2"></Label>
                </table:label>
                <table:template>
                    <Label text="{abc2}"></Label>
                </table:template>
            </table:Column>
        </table:Table>
    </mvc:View>
</script>


<script>
    sap.ui.controller("my.own.controller", {
        onInit: function() {
            var aTableData = [{
                abc: 1,
                abc2: "a"
            }, {
                abc: 6,
                abc2: "b"

            }, {
                abc: 10,
                abc2: "c"

            }, {
                abc: 3,
                abc2: "g"

            }, {
                abc: 12,
                abc2: "h"

            }];
            var oTableModel = new sap.ui.model.json.JSONModel();
            oTableModel.setData(aTableData);

            var oTable = this.getView().byId("testTable");
            oTable.setModel(oTableModel);
            oTable.sort(oTable.getColumns()[0]);
        }


    });

    var myView = sap.ui.xmlview("myView", {
        viewContent: jQuery('#view1').html()
    }); // 
    myView.placeAt('content');
</script>

</head>

<body class='sapUiBody'>
    <div id='content'></div>
</body>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

最后回答这个问题:无论您使用哪种视图类型,都不会将filterType考虑在内进行排序。如果您还认为应该有一种方法可以轻松影响排序逻辑,您可以在此处支持此问题:https://github.com/SAP/openui5/issues/192