UI5:将树添加到IconTabFilter内容

时间:2014-10-28 13:39:09

标签: sapui5

我有一个图标选项卡过滤器,当用户选择它时,我想显示一棵树。

此处提供了如何处理用户选择图标的逻辑

Handle IconTab Selection

我遇到的问题是JS会创建树节点不起作用。这样做的逻辑如下: -

var oModel = new sap.ui.model.json.JSONModel({
                        "idocs1" : [ {
                                "Docnum" : "00063463",
                                "Mestyp" : "MATMAS",
                                "Status" : "53",
                                "Sndprn" : "EXTSYS1",
                                "Direct" : "Inbound",
                                "Message" : "Material 00002342 Created",
                                "messages" : [ {
                                    "message" : "Material 00002342 Created"
                                } ],
                                "segments" : [ {
                                    "segment" : "E1MARAM",
                                    "fields" : [ {
                                        "fieldName" : "MATNR"
                                    } ]

                                } ]
                            } ]
                        });

                        sap.ui.getCore().setModel(oModel);

                        var tgtPath = "/idocs1/0/segments";
                        var oTree = new sap.ui.commons.Tree("tree");

                        oTree.bindAggregation("nodes", tgtPath, function(
                                sId, oContext) {

                            var treePath = oContext.getPath();

                            var bindTextName = '';
                            if (treePath.indexOf("fields") !== -1) {
                                bindTextName = "fieldName";
                            } else {
                                bindTextName = "segment";
                            }

                            alert("here = " + oContext + " ---- "
                                    + bindTextName);
                            return new sap.ui.commons.TreeNode()
                                    .bindProperty("text", bindTextName);

                        });


                        var myButton = new sap.ui.commons.Button("btn");

                        myButton.setText("Hello World!");

                        myButton
                                .placeAt("idViewRoot--idViewDetail--toolBar-content");

                        oTree
                                .placeAt("idViewRoot--idViewDetail--toolBar-content");

此逻辑位于一个方法中,当用户选择特定的IconTab时会调用该方法。

我有按钮,以确保它会向IconTab内容添加内容(当树逻辑被注释掉时)。

我注意到如果我尝试创建两个具有相同ID的按钮,则会调用上面的代码(即方法)两次。

如果我启用树逻辑,则该方法被调用两次,因此我遇到了重复树节点的错误。

非常感谢任何帮助。

由于

马丁

1 个答案:

答案 0 :(得分:0)

您是否有理由想在以后添加内容?您还可以为每个IconTab添加特定内容,该内容在用户单击时显示。 这也应该可以解决你的问题。

如果这对您的情况不方便,我认为您应该在单击IconTab之后在IconTabBar或IconTabFilter上设置内容,而不是将它自己放在内容中。