0

因此,我一直在为 visualforce 页面开发“编辑项”模式,该模式将允许用户编辑对象的子组件并刷新页面。就目前而言,有一个包含父对象 ID 的 URL 参数。代码的结构与此非常相似:

<apex:form id="edit-modal">
     <!-- Modal Content-->
     <apex:actionFunction action="{!updateModalObject}" name="updateModalObject">

     </apex:actionFunction> 
</apex:form>

当用户在模态中按下“保存”按钮时,会调用上述动作函数。控制器中的类如下所示:

public PageReference updateModalObject(){        
    database.update(modalObject); 

    return null;
}

当这个动作完成时,页面正在刷新,同时删除了 URL 参数,导致整个事情有点……搞砸了。我不确定代码的哪一部分导致了刷新,是动作函数还是控制器中的更新。

4

1 回答 1

1

你说:

当用户按下“保存”按钮...

我认为这是导致页面刷新的原因。您是否使用没有 reRender 标签的命令按钮?解决方案可能如下所示:

试试这个技巧 - 在执行 JavaScript 函数后添加 return false :

<apex:commandButton value="Save" onclick="updateModalObject(); return false;"/>

避免页面重新加载的其他方法是添加一个虚拟的 reRender 标记:

<apex:commandButton value="Save" onclick="updateModalObject()" reRender="none" />

或者

<apex:actionFunction action="{!updateModalObject}" name="updateModalObject"  reRender="none">

您必须重新渲染“某物”以避免页面重新加载。否则命令按钮将重新加载整个页面。在我们的例子中,我们将重新渲染“nothing”。

于 2012-08-10T13:16:36.747 回答