ASP.NET Modal Pop Up and VB

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.

LVL 1
steverguyAsked:
Who is Participating?
 
AsishRajCommented:
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
 
AsishRajCommented:
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
 
AsishRajCommented:
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
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

 
AsishRajCommented:
if you need extra explanation then let me know.
0
 
mahadevan_vCommented:
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
 
steverguyAuthor Commented:
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
 
steverguyAuthor Commented:
Thanks! That worked great.
0
 
AsishRajCommented:
glad it worked for you
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.