在liferay关闭弹出窗口时面临问题

时间:2014-12-13 05:57:18

标签: dialog liferay liferay-6 liferay-aui

我在关闭弹出窗口时遇到问题。我打开弹出窗口并使用以下代码

view.jsp的

<aui:script>
AUI().use('aui-base',
    'aui-io-plugin-deprecated',
    'liferay-util-window',
    'liferay-portlet-url',
    'aui-dialog-iframe-deprecated','aui-modal',
    function(A) {
    var modal=null;
    A.one('#<portlet:namespace />updateNewsPaper').on('click', function(){

    A.one('#modal-content').setStyle('display','block')
    modal = new A.Modal(
      {
       srcNode : '#modal-content',  //contentBox:#modal-content
        centered: true,
        headerContent: '<h3>Confirmation</h3>',
        modal: true,
        render: '#modal',
        width: 450
      }
    ).render();
    });
    A.one('#<portlet:namespace />btnNo').on('click', function(event){
        modal.hide();
    });
    A.one('#<portlet:namespace />btnYes').on('click',function(event) {


        modal.hide();

     var paperId=document.getElementById('newsPaperId').value;
     var newsUrl=document.getElementById('newsPaperUrl').value;
     var keyword=document.getElementById('subject').value;
     var flag = document.getElementById("flag").value;
     var status='update';
     var newsPaperName = document.getElementById("newsPaperName").value;


    var popUpWindow=Liferay.Util.Window.getWindow(
                        {
                            dialog: {
                                centered: true,
                                constrain2view: true,
                                //cssClass: 'yourCSSclassName',
                                modal: true,
                                resizable: false,
                                width: 500

                            },

                        }
                    ).plug(
                        A.Plugin.DialogIframe,
                        {
                            id: '<portlet:namespace/>dialog',
                            autoLoad: false,
                            iframeCsviewpdfsClass: 'dialog-iframe',
                            uri:'<%= portletSettingsURL.toString() %>' + '&<portlet:namespace/>paperId=' + paperId + '&<portlet:namespace/>newsUrl=' + newsUrl + '&<portlet:namespace/>keyword=' + keyword + '&<portlet:namespace/>flag=' + flag + '&<portlet:namespace/>status=' + status + '&<portlet:namespace/>newsPaperName=' + newsPaperName
                        }).render();
                        ['aui-io-plugin-deprecated', 'liferay-util-window']
    popUpWindow.show();
    popUpWindow.titleNode.html("Are you sure? Do you want to update record?");
    popUpWindow.io.start();

});

});
</aui:script>
    <aui:script>
    Liferay.provide(window,'<portlet:namespace/>closePopup',function(dialogId){
        var A = AUI();
        var dialog = Liferay.Util.Window.getById(dialogId);
        alert(dialogId);
        dialog.destroy();
        },
    ['aui-base','aui-dialog','aui-dialog-iframe']
    );
    </aui:script>

    <portlet:renderURL var="portletSettingsURL" windowState="<%= LiferayWindowState.POP_UP.toString() %>">
        <portlet:param name="mvcPath" value="/html/openDialog.jsp" />

    </portlet:renderURL>

openDialog.jsp

<aui:script use="aui-base">
A.one('#<portlet:namespace/>closeDialog').on('click', function(event) {
alert("hello");
alert('<portlet:namespace/>dialog');
Liferay.Util.getOpener().<portlet:namespace/>closePopup('<portlet:namespace/>dialog');

});
</aui:script> 

我收到了以下错误消息 **

  

TypeError:对话框未定义

**

我在openDialog.jsp文件中有操作按钮和表单控件。 我点击“否”按钮时关闭弹出窗口。当我点击Yes按钮然后首先我的qction应该执行然后关闭我的弹出窗口。 当我单击操作按钮时,会发生一些处理,例如在db中插入我的记录。 插入完成后,opendialog应自动关闭,然后我回到我的页面。

我怎样才能实现这个目标?

提前致谢

0 个答案:

没有答案