Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

How to close a modalDialog from a webpart page in Sharepoint 2010

Posted on 2011-09-27
8
2,335 Views
Last Modified: 2012-05-12
Hello all,

In sharepoint (2010 foundation) I am trying to use the SP.UI.ModalDialog.showModalDialog function to open a webpart page.
(and it succeeds!!)
However: closing the modalDialog fails. It seems I am closing the webpart page displayed inside de modalDialog but the dialog itself stays open.
The webpart used is a SmartPart, which reads the contents of an aspx file from the server.

This is the code I use to open the dialog:
<script language='text/javascript'>
function UurRegistratieWBS(LineNr, lblAfk, projectNr, BudgetCode) {
            
        var options = SP.UI.$create_DialogOptions();
        options.url = '/ERP/SitePages/UurRegistratie.aspx?wbsnr=' + LineNr + '&user=' + lblAfk + '&project=' + projectNr + '&BudgetCode=' + BudgetCode;
        options.title = "Tijdsregistratie WBS";
        options.showClose = true;
        options.autoSize = true;
        options.dialogReturnValueCallback = Function.createDelegate(null, CloseDialog);

         SP.UI.ModalDialog.showModalDialog(options);
      }
   </script>

Open in new window


...And below is the code I (try to) use in the webpart page :
 
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSluiten.Click

    Me.Response.Write("<script language='text/javascript'>SP.UI.ModalDialog.close(SP.UI.DialogResult.cancel);</script>")
    Me.Parent.Page.Response.Clear()
    Me.Parent.Page.Response.Write("<script language='text/javascript'>SP.UI.ModalDialog.close(SP.UI.DialogResult.cancel);</script>")
  End Sub

Open in new window


As said earlier: the webpart page itself is closed, but the dialogbox stays open and has to be closed manually.
Can someone help me with this?

Thanks,

    Paul
0
Comment
Question by:paeep
  • 5
  • 2
8 Comments
 
LVL 9

Expert Comment

by:dexterrajesh
ID: 36708788
0
 

Author Comment

by:paeep
ID: 36708988
Hey,

I already tried that kind of code (it's all over the internet ;-) )

Could there be a possibility that my modalDialog is opened twice?
--> after I 'close' the dialog, it seems to grow a little in size (as in a default modal popup dialog)

However, I only get 1 result from the callback function.
0
 
LVL 16

Expert Comment

by:Easwaran Paramasivam
ID: 36709093
Instead of SP.UI.ModalDialog.close() method try window.close()
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 

Author Comment

by:paeep
ID: 36709124
That was the initial setup.
Doesn't work either...
0
 

Accepted Solution

by:
paeep earned 0 total points
ID: 36715506
I found the solution myself:

Page.Response.Clear()
Page.Response.Write("<script type='text/javascript'>window.frameElement.commonModalDialogClose(1, 'registratie');</script>")
Page.Response.End()
Page.Response.Flush()

Open in new window


The window.frameElement does the job. Don't know why.
I tried it with IE8 / IE9 / chrome and it all works, whereas the previous 'solutions' did not.

If someone can clarify this, I'd be happy to read it :-)
0
 
LVL 16

Expert Comment

by:Easwaran Paramasivam
ID: 36715548
0
 

Author Closing Comment

by:paeep
ID: 36902120
final solution
0
 

Author Comment

by:paeep
ID: 36715924
I found what I needed explicitly through one of your links:
http://blogs.msdn.com/b/sharepointdev/archive/2011/01/13/using-the-dialog-platform.aspx

Methods Inside a Dialog

When you’re inside a dialog, there are alternate methods to operate on the dialog. The APIs are created dynamically to increase performance and keep from loading the entire SP.UI.Dialog.js file since it is loaded in the parent window. The following methods and properties are available using the window.frameElement class.
...

Thanks!!
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
The vision: A MegaMenu for a SharePoint portal home page The mission: Make it easy to maintain. Allow rich content and sub headers as well as standard links. Factor in frequent changes without involving developers or a lengthy Dev/Test/Prod rel…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question