0

我允许在文件下载控件中删除附件。如果用户删除附件并离开页面(不保存),附件实际上并没有被删除。

控件有一个 onclick 事件,但它并不特定于删除。有没有办法在删除附件后自动调用 .save() ?

4

2 回答 2

6

这是一个 SSJS 片段,它允许向FileDownload控件的删除功能添加操作。

<xp:this.beforeRenderResponse>
    <![CDATA[#{javascript:

    /***
     * adds an additional method to "delete action"
     * of a UIFileDownload control
     *  
     * @param UIFileDownload component
     * @author Sven Hasselbach
     * @category SSJS
     * @category UI
     * @version 0.3
     */
    function overrideFileDownloadAction( fDownload ){
        if( fDownload === null )
            return;
        rekOverrideFileDownloadAction( fDownload, fDownload );
    }

    function rekOverrideFileDownloadAction( component:javax.faces.component.UIOutput, fDownload:com.ibm.xsp.component.UIFileDownload  ){
        try{
            var children:java.util.List = component.getChildren();
            var it:java.util.Iterator = children.iterator();
            var curChild:javax.faces.component.UIOutput;

            while( it.hasNext() ){
                curChild = it.next();
                if( typeof( curChild ) === 'com.ibm.xsp.component.xp.XspEventHandler' ){

                    var group = new com.ibm.xsp.actions.ActionGroup();
                    var list = new java.util.ArrayList();
                    group.setComponent( fDownload );
                    list.add( curChild.getAction() );
                    list.add( mBinding );
                    group.setActions( list );
                    curChild.setAction(group);
                }
                rekOverrideFileDownloadAction( curChild , fDownload );
            }
        }catch(e){}    
    }

    var mBinding = facesContext.getApplication().createMethodBinding("#{javascript:document1.save()}", null );
    overrideFileDownloadAction( getComponent( 'fileDownload1' ) );
    }]]>
</xp:this.beforeRenderResponse>

您必须更改 MethodBinding mBinding中的代码和FileDownLoad控件的名称。请记住,此代码仅在没有验证问题的情况下才会保存文档。要禁用必填字段,您必须添加以下代码行curChild.setDisableValidators(true); if块中。

于 2012-10-30T09:55:25.130 回答
2

另一种方法是使用 enableModifiedFlag 属性来确保在离开页面而不保存时提示用户。

更多详细信息,请访问http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/topic/com.ibm.designer.domino.ui.doc/wpd_controls_pref_enablemodifiedflag.html

于 2012-10-28T06:46:02.093 回答