Solved

ASP.NET Modal Pop Up and VB

Posted on 2009-04-02
8
795 Views
Last Modified: 2012-05-06
I am creating an ASP.NET website that has a list of 25 links (linkButton controls).  If someone clicks a link, I want to check to see if their ZipCode is saved in a cookie - if not, I want to pop up a modal popup box that asks for the zipcode.

I have the modal popup box working - I can check to see if a cookie has been set(on the codebehind page) - but i can't do it without post back.  So the page refreshes before showing the modal pop up and it doesn't look quite right.

Does anyone have any ideas how I would go about this?

Thanks for the help!  I'm learning by doing - so I hope this makes sense.

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

Expert Comment

by:AsishRaj
Comment Utility
Try this

'parent page
 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="page1.aspx.cs" Inherits="page1" %>
 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<title>Parent Webform</title>

<script language="javascript">

function OpenChild()

{

var ParmA = retvalA.value;

var ParmB = retvalB.value;

var ParmC = retvalC.value;

var MyArgs = new Array(ParmA, ParmB, ParmC);

var WinSettings = "center:yes;resizable:no;dialogHeight:300px"

// ALTER BELOW LINE - supply correct URL for Child Form

var MyArgs = window.showModalDialog("page2.aspx", MyArgs, WinSettings);

if (MyArgs == null)

{

window.alert("Nothing returned from child. No changes made to input boxes");

}

else

{

retvalA.value=MyArgs[0].toString();

retvalB.value=MyArgs[1].toString();

retvalC.value=MyArgs[2].toString();

Window.location.reload();
 

}

}

</script>

</HEAD>

<body>

<P><INPUT id="retvalA" type="text" value="AAA"/></P>

<P><INPUT id="retvalB" type="text" value="BBB"/></P>

<P><INPUT id="retvalC" type="text" value="CCC"/></P>

<P><BUTTON onclick="OpenChild()" type="button">Open Child Window</BUTTON></P>

</body>

</HTML>
 

Child Page

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Page2.aspx.cs" Inherits="Page2" %>
 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE>Child Webform</TITLE>

<script language="javascript">

function Done() {

var ParmA = tbParamA.value;

var ParmB = tbParamB.value;

var ParmC = tbParamC.value;

var MyArgs = new Array(ParmA, ParmB, ParmC);

window.returnValue = MyArgs;

window.close();

}
 

</script>

</HEAD>

<BODY>

<P>Param A:<INPUT id="tbParamA" TYPE="text"/></P>

<P>Param B:<INPUT ID="tbParamB" TYPE="text"/></P>

<P>Param C:<INPUT ID="tbParamC" TYPE="text"/></P>

<BUTTON onclick="Done()" type="button">OK</BUTTON>

</BODY>

</HTML>

Open in new window

0
 
LVL 9

Expert Comment

by:AsishRaj
Comment Utility
Sorry i didnt read your requirements properly. the above code is for the model popup window

What you can do is store the required info in the session and onclick do a javascript check
Somthing like var MySessionvalue = <% = Session("key") %>;

then see if its empty then pop up the window else do somthing else

Asish
0
 
LVL 9

Expert Comment

by:AsishRaj
Comment Utility
if you need extra explanation then let me know.
0
 
LVL 4

Expert Comment

by:mahadevan_v
Comment Utility
you can use a simple ajax page to do this .. return the result to the page which is shown in dialog.. it will avoid the post back
0
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 
LVL 1

Author Comment

by:steverguy
Comment Utility
Ok, I feel like I'm getting really close on this (had to go to bed last night  - wasn't seeing straight)

I'm finding all sorts of code that does kind of what I'm looking for - and I can see how both solutions above are leading to the desired results.  But something's missing.

Here's the code I have for the ModalPopUp Box:
<asp:Panel ID="Panel1" runat="server" CssClass="modalPopup" Style="display: none" Width="233px">
                   <p>Please enter your zip code:<br />
                   <asp:TextBox ID="ZipCode" runat="server"></asp:TextBox>
                   <br />
                      <asp:Button ID="OkButton" runat="server" Text="OK" />
                      <asp:Button ID="CancelButton" runat="server" Text="Cancel" />
                   </p>
                </asp:Panel>
   <br />
   <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
             TargetControlID="lb_Architects"
             PopupControlID="Panel1"
             BackgroundCssClass="modalBackground"
             DropShadow="true"
             OkControlID="OkButton"
             CancelControlID="CancelButton" />

I have 25 links that will be like this one: <asp:LinkButton ID="lb_Furniture" runat="server" CssClass="CatNavMain" OnClientClick="someJsYouWant();">Furniture & Appliances</asp:LinkButton>
(following the example from somehere on the web)

The javascript i have is:
 function someJsYouWant(){  
                alert('HelloSO');
            ;}

Taking AsishRaj's example of using a session variable to set a Javascript variable, I can see how to check the value i need...  But I can't see how to pop up the modal box - if the Session Variable is empty.
If the session variable has a value,  I don't want the modal popup box to show at all.

I was able to accomplish this if I postback - but the refresh doesn't look right.

Thanks for your help!
0
 
LVL 9

Accepted Solution

by:
AsishRaj earned 500 total points
Comment Utility
Try this - untested code - out of the head

<script>

function someJsYouWant(){ 

   var test;

   if(test!=null){

      document.write("exists!");

   }else{

       var modal = $find('ModalPopupExtender1'); 

       modal.show();

   }

}

</script> 

Open in new window

0
 
LVL 1

Author Comment

by:steverguy
Comment Utility
Thanks! That worked great.
0
 
LVL 9

Expert Comment

by:AsishRaj
Comment Utility
glad it worked for you
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

In .NET 2.0, Microsoft introduced the Web Site.  This was the default way to create a web Project in Visual Studio 2005.  In Visual Studio 2008, the Web Application has been restored as the default web Project in Visual Studio/.NET 3.x The Web Si…
Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

728 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

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now