Open a new window and set session variable?

R

rockdale

Hi, all:

I have a linkbutton and I use javascript to open another webpage in a
new window. I also want to set my session variable value when this
linkbutton get clicked. These session variable is used in the the
webpage that in the new window. I do not want pass these variables as
parameters to the web page. Can I let the linkbutton execute postback
to set the session variable's value and also execute client javascript
to open a new window? I tried but get no luck. Or you have a better
idea to achieve this?


following is my code
<script language="javascript">
function NewWindow(strUrl){
var win = window.open(strUrl, null, 'height=600,width=1024,status=no,
toolbar=no,menubar=no,location=no');
}
Print</asp:linkbutton>

code behind
lbnPrint.Attributes.Add("onClick","NewWindow('print.aspx)");





Thanks a lot
-rockdale
 
?

=?ISO-8859-1?Q?G=F6ran_Andersson?=

If you open the new page from client script in the button, you can't set
the session variable before the new page loads.

You have to first make the postback to set the session variable and
output the client script that opens the new page. Then the new page will
open when the page loads after postback.
 
R

rockdale

I am sorry, but how can I output the client script? using
response.write? any code sample?

Thanks a lot
 
?

=?ISO-8859-1?Q?G=F6ran_Andersson?=

Use the RegisterClientScript method.
I am sorry, but how can I output the client script? using
response.write? any code sample?

Thanks a lot
 
R

rockdale

Hi, Goran:

Can you be more specific?
I still could not get it work. If replace window.open with alert, it
works.

following is my code
private void ButtonPrintAll_Click(object sender, System.EventArgs e)
{
Session["VAR_1"] = ###;
Session["VAR_2"] = ###;
String js = BuildOpenWindowsJavaScript();
Page.RegisterClientScriptBlock("OpenWindow", js);
}


private String BuildOpenWindowsJavaScript(){
System.Text.StringBuilder js = new System.Text.StringBuilder ();
js.Append("<script language=\"javascript\">");
js.Append("\n");
//js.Append("alert(\"this is a test\");");
js.Append ("window.open(\"www.google.com\");");
js.Append ("</script>");
return js.ToString ();
}
 
R

rockdale

Oops, just found out that my IE does not allow popups.
Thanks

Hi, Goran:

Can you be more specific?
I still could not get it work. If replace window.open with alert, it
works.

following is my code
private void ButtonPrintAll_Click(object sender, System.EventArgs e)
{
Session["VAR_1"] = ###;
Session["VAR_2"] = ###;
String js = BuildOpenWindowsJavaScript();
Page.RegisterClientScriptBlock("OpenWindow", js);
}


private String BuildOpenWindowsJavaScript(){
System.Text.StringBuilder js = new System.Text.StringBuilder ();
js.Append("<script language=\"javascript\">");
js.Append("\n");
//js.Append("alert(\"this is a test\");");
js.Append ("window.open(\"www.google.com\");");
js.Append ("</script>");
return js.ToString ();
}



Göran Andersson said:
Use the RegisterClientScript method.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,992
Messages
2,570,220
Members
46,807
Latest member
ryef

Latest Threads

Top