2013-05-07 2 views
1

Я создаю приложение, в котором я хочу добавить данные в форму в формате мастера. У меня будет серия модальных диалогов, которые пройдут через процесс ввода данных. Я использую модальные диалоги Bootstrap. Я намерен сохранить каждый шаг управляемому компоненту. Приложение должно работать на всех устройствах, поэтому я делаю это так.Как передать и отобразить пользовательский элемент управления в другом настраиваемом элементе управления

Я пытаюсь создать отдельный настраиваемый элемент управления для хранения модального окна, а затем передать заголовок окна, mainContent, название кнопки для элемента управления, используя пользовательские свойства. Название окна и название кнопки работают нормально. Свойство «mainContent» содержит XML-код для настраиваемого элемента управления для отображения в окне. Мой вопрос заключается в том, как заставить элемент управления отображать фактическое содержимое настраиваемого элемента управления вместо строки XML пользовательского имени элемента управления. Моя цель - сделать многоразовый фрагмент.

Я попытался использовать «Включить страницу», из-за чего вся xpage исчезает. Я попытался использовать элемент «dynamicContent», но не смог заставить его работать. Существует очень четкая возможность, что я не правильно использую этот контроль. Я оставил этот код там. Sidenote: хс: расположение на XPage мой Bootstrap макет, который я не думаю, что факторы в

XPage код - все, что есть призывая модальное окно пользовательского элемента управления:.

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom"> 
<xc:layout> 
    <xc:modalWindow button_title="Save and Continue to Step 2" 
     window_title="Create New PO - Step 1 of 7"> 
     <xc:this.mainContent><![CDATA[<"xc:NewPO_Step1 />"]]></xc:this.body> 
    </xc:modalWindow> 
</xc:layout> 

Вот код для пользовательского элемента управления "модальное окно"

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex"> 
<a href="#myModal" role="button" class="btn" data-toggle="modal"> 
    Begin Creating New PO 
</a> 
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" 
    aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" 
      aria-hidden="true"> 
      × 
     </button> 
     <h3 id="myModalLabel"> 
      <xp:text escape="true" id="computedField3" 
       value="#{javascript:compositeData.window_title}"> 
      </xp:text> 
     </h3> 
    </div> 
    <div class="modal-body"> 
     <xe:dynamicContent id="dynamicContent1"><xp:text escape="true" id="computedField2" value="#{javascript:compositeData.mainContent}"> 
</xp:text><xp:this.facets> 
</xp:this.facets> 
     </xe:dynamicContent> 
    </div> 
    <div class="modal-footer"> 
     <button class="btn" data-dismiss="modal" aria-hidden="true"> 
      Cancel 
     </button> 
     <button class="btn btn-primary"> 
      <xp:text escape="true" id="computedField4" 
       value="#{javascript:compositeData.button_title}"> 
      </xp:text> 
     </button> 
    </div> 
</div> 

ответ

2

Вы можете использовать «Включить страницу» добавить «.xsp» к имени таможенного контроля:

<div class="modal-body"> 
    <xp:include id="include1"> 
     <xp:this.pageName><![CDATA[${javascript:compositeData.mainContent + ".xsp"}]]></xp:this.pageName> 
    </xp:include> 
</div> 

Добавить mainContent="nameOfYourCustomControl" в модальное окно вызова и у вас есть гибкость, которую вы ищете:

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom"> 
     <xc:modalWindow button_title="Save and Continue to Step 2" 
      window_title="Create New PO - Step 1 of 7" mainContent="step1"> 
     </xc:modalWindow> 
</xp:view> 

В в этом примере вам нужно создать настраиваемый элемент управления «step1», который содержит весь контент.

+0

Спасибо, Кнут, это работает! –

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