- У меня есть две простые формы (Form1 и Form2). Они имеют только одно поле каждый (поле1). Я создал два пользовательских элемента управления. Они идентичны, за исключением cc1 имеет источник данных определяется как Form1 и cc2 имеет источник данных формы 2.
- Каждый пользовательский элемент управления имеет один InputBox связанный с FIELD1 полем соответствующего источника данных, и одна кнопка отправки. Я создаю страницу
Xpage и вытаскиваю оба пользовательских элемента управления на страницу. - Если я просматриваю и заполняю поля ввода на странице Xpage в браузере , когда я нажимаю на любую из кнопок отправки, два документа будут созданы на основе двух форм в базе данных домино.
- Я попытался использовать частичное обновление/выполнение и многое другое. Независимо от того, что я делаю, я всегда получаю пустые документы обеих форм.
XPage:Xстраница с несколькими формами и источниками данных создает пустые документы
<xp:div styleClass="container" style="margin-top:20px">
<xp:div styleClass="row">
<xc:cc1></xc:cc1>
<xc:cc2></xc:cc2>
</xp:div>
</xp:div>
Пользовательский контроль 1
<xp:this.data>
<xp:dominoDocument var="form1" formName="form1"></xp:dominoDocument>
</xp:this.data>
<xp:div id="formDiv1" styleClass="col-sm-4">
<xp:form>
<xp:label value="Form 1" styleClass="h3"></xp:label>
<xp:div styleClass="form-group">
<xp:label value="Field 1" styleClass="control-label"></xp:label>
<xp:inputText value="#{form1.field1}"></xp:inputText>
</xp:div>
<xp:button value="Submit Form1" id="form1Btn">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" immediate="false" save="true" refreshId="formDiv1"
execMode="partial" execId="formDiv1">
</xp:eventHandler>
</xp:button>
</xp:form>
Пользовательский контроль 2
<xp:this.data>
<xp:dominoDocument var="form2" formName="form2"></xp:dominoDocument>
</xp:this.data>
<xp:div id="formDiv1" styleClass="col-sm-4">
<xp:form>
<xp:label value="Form 2" styleClass="h3"></xp:label>
<xp:div styleClass="form-group">
<xp:label value="Field 1" styleClass="control-label"></xp:label>
<xp:inputText value="#{form2.field1}"></xp:inputText>
</xp:div>
<xp:button value="Submit Form2" id="form2Btn">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" immediate="false" save="true" refreshId="formDiv1"
execMode="partial" execId="formDiv1">
</xp:eventHandler>
</xp:button>
</xp:form>
Это отлично. Спасибо, Кнут. Это почти идеально. Однако после нажатия кнопки «Отправить» поле ввода не обновляется. Кроме того, если я введу другое значение в поле ввода и снова нажмите кнопку отправки, тогда предыдущий документ будет перезаписан вместо создания нового документа с новым значением. –
Этот http://stackoverflow.com/a/14585187/2065611 может помочь вам получить новый документ после сохранения предыдущего. –
Да, действительно. это был ответ! Но мне пришлось добавить дополнительную строку в код: ds.setFormName ("form2"); –