如果不存在,则创建一行视图对象

Create row of view object if not existing

我有一个包含视图对象的页面,returns 一行。如果它不存在,我的意图是创建一行。进入页面时,如果存在某个key的行,页面加载,也可以很好的更新。 当具有特定键的行不存在时,页面加载不正确。不调用视图对象的 createrow 方法。 我想我的 pageDef 中遗漏了一些东西。

我试过使用 invokeAction

<invokeAction id="initEmptyRowSet" Binds="Rollback" Refresh="always"
                  RefreshCondition="#{bindings.MyVO1Iterator.queryModel == null}"/>

<invokeAction Binds="EventTypesExecuteWithParams" id="invokeEventTypes“ Refresh="ifNeeded"/>

<action IterBinding="MyVO1Iterator“ id="EventTypesExecuteWithParams"
    InstanceName="MyAppModuleDataControl.AccidentIVVVO"
    DataControl="MyAppModuleDataControl" RequiresUpdateModel="true"
    Action="executeWithParams">
</action>

我错过了什么?

您必须有条件地调用 VIOterator 上的 CreateInsert 操作。 这里你的条件是,如果 VOIterator 行计数 > 0,则不要插入新行,否则执行迭代器来查询 VO。

这里是示例代码。

<iterator Binds="AccidentIVVVO" RangeSize="25"
     DataControl="MyAppModuleDataControl" id="MyVO1Iterator"/>

<invokeAction id="createInsert" Binds="CreateInsert"
     RefreshCondition="#{bindings.MyVO1Iterator.estimatedRowCount == 0}"
     Refresh="ifNeeded"/>

<action IterBinding="MyVO1Iterator" id="CreateInsert" 
    InstanceName="MyAppModuleDataControl.MyVO1"
    DataControl="MyAppModuleDataControl"
    RequiresUpdateModel="true" Action="createInsertRow"/>