Tim Tripcony의 제안에 따라 간단한 no xpage를 구현했습니다. 사용자가 "추가"버튼을 클릭 할 때 표시되는 필드 추가 버튼이 부분 새로 고침을 수행하고 아니요를 확장하면 데이터를 기억하지 못하는 부분 새로 고침 문제가 있습니다. 행 수부분 새로 고침 버튼 문제를 클릭하면 더 많은 필드가 XPage에 표시됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" dojoForm="true">
<xp:this.data>
<xp:dominoDocument var="newDoc" formName="frmAddMore"></xp:dominoDocument>
</xp:this.data>
<xp:this.afterPageLoad><![CDATA[#{javascript:viewScope.rowCount = new java.lang.Integer(5);}]]></xp:this.afterPageLoad>
<xp:div id="parentDiv">
<xp:repeat indexVar="fieldSuffix" value="#{viewScope.rowCount}"
rows="#{viewScope.rowCount}" var="row">
<xp:div>
<xp:inputText id="KeyNo">
<xp:this.value><![CDATA[#{newDoc["KeyNo_#{fieldSuffix}"]}]]></xp:this.value>
</xp:inputText>
<xp:inputText id="Qty">
<xp:this.value><![CDATA[#{newDoc["Quantity_#{fieldSuffix}"]}]]></xp:this.value>
</xp:inputText>
</xp:div>
</xp:repeat>
<xp:button value="Add More" id="btnAddMore"
execMode="partial">
<xp:eventHandler event="onclick" submit="true"
execMode="partial" execId="parentDiv" refreshMode="partial" refreshId="parentDiv">
<xp:this.action><![CDATA[#{javascript:viewScope.rowCount = new java.lang.Integer(viewScope.rowCount + 5);}]]></xp:this.action>
<xp:this.script>
<xp:executeClientScript
script="dojo.window.scrollIntoView(dojo.byId('#{id:btnAddMore}').id);">
</xp:executeClientScript>
</xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:div>
</xp:view>
무엇이 여기에 있습니까?
dojo.window.scrollIntoView 클라이언트 측 JS 함수가 작동하지 않는 것을 발견했습니다. 어떤 도움이라도 대단히 감사 할 것입니다.
감사합니다. 부분적 새로 고침이 기존 값을 잃지 않는다는 인상 아래에 있었습니까? 그래서 내가 언급 한대로 유효성 검사없이 각 부분 새로 고침 중에 강제로 저장해야합니다. – pipalia
유효한 제품인지 다른 밸리데이션을 실행하는지 확인하기 위해 각 라인에서 유효성을 검사하려면 어떻게해야합니까? 입력 컨트롤의 ID를 실제로 계산할 수 없으므로 오류 메시지 컨트롤을 사용하면 어떻게됩니까? – pipalia