如何绑定xpages中计算字段的数据

时间:2013-07-29 09:17:00

标签: xpages xpages-extlib xpages-ssjs

我正在尝试将数据绑定到计算字段中的FORM,该字段根据所选天数计算金额。请帮帮我!

2 个答案:

答案 0 :(得分:0)

我有同样的问题。这可能不是解决这个问题的最有效方法,但它确实有效。

var cost1 = getComponent('ItemCost1')。getValue(); document1.replaceItemValue(“ItemCost_1”,cost1),

您可以将其放入QuerySave事件&它运作良好。

答案 1 :(得分:0)

我的偏好是让计算字段完成工作并将目标字段放入一个不向用户显示但在XPage上可见的位置。像这样:

<xp:table id="dataTable">
    <xp:tr>
        <xp:td>
            <xp:label value="Price Per Day" id="label1"></xp:label>
            </xp:td>
        <xp:td>
            <xp:inputText id="PricePerDayEB1" value="#{document1.PricePerDay}" defaultValue="25">
                <xp:this.converter>
                    <xp:convertNumber type="currency"></xp:convertNumber>
                </xp:this.converter>
                <xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="dataTable">
                </xp:eventHandler>
            </xp:inputText>
        </xp:td>
    </xp:tr>
    <xp:tr>
        <xp:td>
            <xp:label value="Days" id="label2"></xp:label>
        </xp:td>
        <xp:td>
            <xp:inputText id="DaysEB1" value="#{document1.Days}" defaultValue="1">
                <xp:this.converter>
                    <xp:convertNumber type="number" integerOnly="true">
                    </xp:convertNumber>
                </xp:this.converter>
                <xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="dataTable">
                </xp:eventHandler>
            </xp:inputText>
        </xp:td>
    </xp:tr>
    <xp:tr>
        <xp:td>
            <xp:label value="Computed Total" id="label3"></xp:label>
        </xp:td>
        <xp:td>
            <xp:text escape="true" id="compTotalCF1">
                <xp:this.value><![CDATA[#{javascript:
var PricePerDayEB1:com.ibm.xsp.component.xp.XspInputText = getComponent("PricePerDayEB1");
var DaysEB1:com.ibm.xsp.component.xp.XspInputText = getComponent("DaysEB1");
var TotalEB1:com.ibm.xsp.component.xp.XspInputText = getComponent("TotalEB1");

var ppd = PricePerDayEB1.getValue();
var days = DaysEB1.getValue();
var total = ppd*days

TotalEB1.setValue(total);
return total;
}]]></xp:this.value>
            </xp:text>
        </xp:td>
    </xp:tr>
    <xp:tr style="display:none;">
        <xp:td>
            <xp:label value="Bound Total" id="label4"></xp:label>
        </xp:td>
        <xp:td>
            <xp:inputText id="TotalEB1" value="#{document1.Total}">
                <xp:this.converter>
                    <xp:convertNumber type="number"></xp:convertNumber>
                </xp:this.converter>
            </xp:inputText>
        </xp:td>
    </xp:tr>
    <xp:tr>
        <xp:td colspan="2">
            <xp:button value="Submit" id="button1">
            <xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="false" save="true"></xp:eventHandler></xp:button>
        </xp:td>
    </xp:tr>
</xp:table>

快乐编码

/ Newbs