2014-10-15 2 views
0

Я пытаюсь добавить id для каждого div вертикальной компоновки. Я могу сделать это с помощью javascript, но я бы хотел сделать это без него.Добавить id VerticalLayout SapUi5

код для создания vertial макета:

var oText1 = new sap.ui.commons.TextField({value:"Edward"}); 
    var oText2 = new sap.ui.commons.TextField({value:"Maria"}); 

    var oLayoutVer = new sap.ui.layout.VerticalLayout("LayoutVer", { 
     content: [oText1, oText2] 
    }); 

Этот ген:

<div id="LayoutVer" data-sap-ui="LayoutVer" class="sapUiVlt sapuiVlt"> 
     <div class="sapUiVltCell sapuiVltCell"><input id="__field1" ... value="Edward"></div> 
     <div class="sapUiVltCell sapuiVltCell"><input id="__field2" ... value="Maria"></div> 
    </div> 

Я нахожу это: http://scn.sap.com/thread/3386749, но я хотел бы это без onAfterRendering, спасибо

ответ

0

I подумайте, что вы можете дать sId для каждого элемента, который вы добавляете к вертикальной компоновке, и UI5 внутренне создает div для каждого добавленного элемента. Вы можете управлять этими элементами, используя данный sId, будет лучшим вариантом, а не пытаться назначить id для каждого родительского div, созданного UI5.

$ («# элемент Sid»). Родитель() будет также полезен в управлении DIV вы спросили

1

Я думаю, вы пытаетесь стиль этих элементов или запрос для него из JavaScript. Вы можете использовать селектор п-го ребенка, как это без необходимости какого-либо дополнительного идентификатора:

CSS

#LayoutVer:nth-child(2) { 
    width: 100%; 
} 

JQuery

var secondChild = $(#LayoutVer:nth-child(2)); 
var allChildren = $(#LayoutVer).children(); 

Вообще редко существует необходимость в использовании Ид с точки зрения css. Поскольку вы используете селектор css для запроса элементов и имеете различные другие возможности для перемещения DOM с помощью jQuery, вам тоже редко нужны идентификаторы. Единственное реальное использование - получить UI5 Controls через sap.ui.getCore().byId(). Разделы, которые вы пытаетесь получить, не являются элементами управления UI5, хотя они - всего лишь элементы из вывода html вертикальных макетов.

Суть в том, что я не вижу никаких причин, чтобы иметь идентификаторы на этих дивы :)

BR Крис

0

Что вам нужно передать идентификатор в конструктор и создать цикл. ..

for (var int = 1; int < 10; int++) { 
    var id = "layout" + int; // creates "layout1" .. "layout2" 
    var oText1 = new sap.ui.commons.TextField({value:"Edward"}); 
    var oText2 = new sap.ui.commons.TextField({value:"Maria"}); 

    var oLayoutVer = new sap.ui.layout.VerticalLayout(id, { 
     content: [oText1, oText2] 
    }); 
} 

теперь вы можете получить доступ с помощью ID ;-)

Смежные вопросы