0

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

4

2 回答 2

0

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

var cost1 = getComponent('ItemCost1').getValue(); document1.replaceItemValue("ItemCost_1", cost1),

您可以将其放入 QuerySave 事件中,并且效果很好。

于 2013-07-29T16:32:54.360 回答
0

我的偏好是让 Computed Field 完成工作,并将目标字段放在不向用户显示但在 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>

快乐编码

/新人

于 2013-07-29T20:21:15.870 回答