Я попытался выбрать2 плагин на XPAGES. Он работает правильно для нового документа, но для существующего документа его нельзя сохранить. И я нашел источник этой проблемы «XPages не будет сохранить существующий документ при использовании $ .ajax» и XAgent
Вот мой простой пример (test.xsp): `
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom"
xmlns:xp_1="http://www.ibm.com/xsp/coreex">
<xp:this.data>
<xp:dominoDocument var="document1" formName="Employee"
action="openDocument" computeWithForm="both">
</xp:dominoDocument>
</xp:this.data>
<xc:coreHeader theme="blue"></xc:coreHeader>
<xp:button value="Save" id="button1">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action>
<![CDATA[#{javascript:currentDocument.save();context.redirectToPage("grid.xsp");}]]>
</xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:button id="button2" rendered="#{javascript:!currentDocument.isEditable()}" value="Edit">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action>
<xp:changeDocumentMode mode="toggle" var="document1"></xp:changeDocumentMode>
</xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:label for="forteInputText" styleClass="control-label" value="Label"></xp:label>
<xp:div styleClass="controls" >
<xp:inputText id="txtNama" value="#{document1.Nama}"></xp:inputText>
<xp:inputText id="txtAlamat" value="#{document1.Alamat}"></xp:inputText>
</xp:div>
<xp:scriptBlock rendered="true">
<xp:this.value><![CDATA[// DECLARATION
dojo.ready(function(){
$.ajax({
url:'example.xsp'
}).done(function(data){
x$('#{id:txtNama}').val(data);
})
})]]></xp:this.value>
</xp:scriptBlock>
<xc:coreFooter></xc:coreFooter>
</xp:view>
и XAgent (пример .xsp)
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" rendered="false">
<xp:this.afterRenderResponse><![CDATA[#{javascript:
try{
var externalContext = facesContext.getExternalContext();
var writer = facesContext.getResponseWriter();
var result = "ajax testing";
writer.write(result);
writer.endDocument();
} catch(e){
_dump(e);
}
}]]></xp:this.afterRenderResponse>
</xp:view>
Когда я открываю url "server/database.nsf/test.xsp". TxtNama получит значение: «ajax testing» из example.xsp, и я его сохранил .. этот новый документ можно сохранить без каких-либо проблем.
Однако, когда я открываю этот сохраненный документ url = "server/database.nsf/test.xsp? DocumentId = XXXXXXXXXXXXXX". и заполните значение txtAlamat и сохраните его. Любые изменения в txtAlamat не могут быть сохранены.
Но если я установил xp: scriptBlock rendered = "false" и попытаюсь снова заполнить значение txtAlamat, то изменения txtAlamat будут сохранены.
Это очень странно ..
Я не понимаю, что вы пытаетесь сделать: я не вижу вашего использования select2, я не понимаю, почему вы хотите назвать свою функцию ajax, и я не вижу этого примера .xsp пытается ничего сохранить. Вот демонстрационная версия Select2 with XPages, которая может быть полезна: http://bootstrap4xpages.com/bs4xp/demos.nsf/select2.xsp –
Извините, что вы запутались .. Я пытаюсь использовать select2 плагин. но XPAGES может сохранять только документ только для нового документа. И я пытаюсь сжать код, чтобы найти причину этой проблемы. И я обнаружил, что в моей базе данных я не могу сохранить какие-либо изменения для существующего документа, пока я использую $ .ajax –