XPage jdbcRowSet +重复控制:Oracle 10 DB中不会保留更改

时间:2015-06-02 20:43:47

标签: oracle oracle10g xpages xpages-extlib

我正在尝试创建一个“无限形式”,用户可以直接在表单中编辑RDBMS表的列值(即不打开允许编辑单行的单独“编辑表单”) 。我正在使用绑定到jdbcRowSet的XPages重复控件,该控件访问Oracle 10 DB中的简单PERSON表(标识号主键,名/姓,以及表单中未公开的一些其他列)。

显示数据并对其进行编辑按预期工作,但将更改持久保存到数据库会持续失败,但没有错误消息。在下面的源代码中,我可以看到我试图告诉数据源保存所做更改的方法,但无济于事。 (使用与Notes数据源相同的代码按预期工作并保持更改)。

如何让jdbcRowSet在表单中保留更改?

提前感谢您的帮助, 马丁

<xp:view xmlns:xp=“http://www.ibm.com/xsp/core”

xmlns:xe="http://www.ibm.com/xsp/coreex">

<xp:this.data>
    <!-- <xp:dominoView var="view1Ld" viewName="AuthorView"></xp:dominoView> -->
    <xe:jdbcRowSet var="view1" connectionName="oracle10"
        sqlTable="PERSON">
    </xe:jdbcRowSet>
    <xe:jdbcQuery var="jdbcQuery1"></xe:jdbcQuery>
</xp:this.data>


<xp:panel id="panel0">

    <xp:repeat id="repeat1" rows="30" value="#{view1}" var="rpt">
        <xp:panel id="panelDocData">
            <xp:inputText id="inputText1" value="#{rpt.id}"></xp:inputText>
            <xp:inputText id="inputText2"
                value="#{rpt.first_name}">
            </xp:inputText>
            <xp:inputText id="inputText3" value="#{rpt.last_name}"
                showReadonlyAsDisabled="true">
            </xp:inputText>
            <xp:inputText id="inputText5"
                defaultValue="#{rpt.last_name}">
            </xp:inputText>
        </xp:panel>
    </xp:repeat>

    <xp:br></xp:br>
    <xp:inputText id="inputText4" value="#{view1.last_name}"></xp:inputText>
    <xp:br></xp:br>
    <xp:br></xp:br>
    <xp:button value="Save" id="button1">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete">
            <xp:this.action><![CDATA[#{javascript:view1.acceptChanges()}]]></xp:this.action>
        </xp:eventHandler>
    </xp:button>
    <xp:button value="Simply Save" id="button3">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete" immediate="false" save="true">
            <xp:this.action>
                <xp:save></xp:save>
            </xp:this.action>
        </xp:eventHandler>
    </xp:button>
    <xp:button value="Submit" id="button4">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete" immediate="false" save="true">
            <xp:this.action>
                <xp:confirm
                    message="Are you sure you want to persist the changes in the database ?">
                </xp:confirm>
            </xp:this.action>
        </xp:eventHandler>
    </xp:button>
    <xp:button value="Save Document" id="button5">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete">
            <xp:this.action>
                <xp:saveDocument var="view1"></xp:saveDocument>
            </xp:this.action>
        </xp:eventHandler>
    </xp:button>
    <xp:button id="button6">
        <xp:this.value><![CDATA[Save Datasource]]></xp:this.value>
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete">
            <xp:this.action><![CDATA[#{javascript:rpt.acceptChanges()}]]></xp:this.action>
        </xp:eventHandler>
    </xp:button>
    <xp:button value="Save View DS" id="button7">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete">
            <xp:this.action><![CDATA[#{javascript:view1.acceptChanges()}]]></xp:this.action>
        </xp:eventHandler>
    </xp:button>
    <xp:button value="Save View DS 2" id="button8">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete">
            <xp:this.action><![CDATA[#{javascript:view1.rpt.acceptChanges()}]]></xp:this.action>
        </xp:eventHandler>
    </xp:button>
</xp:panel>
<xp:br></xp:br>

0 个答案:

没有答案