views:

128

answers:

2

Hi, right now I have a huge Solution in which we use javascript alerts via RegisterStartupScript for all messages and errors.. We were willing to modify all this to making something similar to the modalPopupExtender, or the extender itself in a way that doesn't require too much effort... I mean, to show a modalpopup on a single page I need to create it on the aspx file, setting the attributes etc... So i'm just asking for Ideas, want to know how you guys deal with this..

+1  A: 

Could you not place the modal popup/ modal popup extender into a user a control and embed the user control into each page?

Dean
+1  A: 

I'd probably use jQuery dialog and put the markup and initialization code in a MasterPage, set with autoOpen false and hidden by default. I'd inject code that interacts with the dialog into each page as needed.

<div id="modalDialog" title="Error">
   <p id='modalDialogMsg'>An error has occurred.</p>
</div>

<script type="text/javascript">
   $(function() {
      $('#modalDialog').dialog({
         autoOpen: false;
         modal: true,
         buttons: {
            "OK" : function() {
                      $(this).dialog('close');
                   }
         }
      });
   });

   // You could "objectify" this, but I'll show as a global function
   function showError( title, msg )
   {
        if (!title) {
           title = 'Error';
        }
        if (!msg) {
           msg = 'An error occurred.';
        }
        $('#modalDialogMessage').html(msg);
        $('#modalDialog').attr('title',title)
                         .dialog('open');
   }
</script>

Then, in your page you'd inject code that calls showError. Note this would need to be after the script above in order to make sure that the function has been defined. What would spit out would render like:

<script type="text/javascript">
     $(function() {
           showError('Database connection error', 'There was an error connecting to the database.' )'
     });
</script>
tvanfosson