Thursday, March 22, 2012

Open a new window and set session variable?

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');
}
</script>
<asp:linkbutton id="lbnPrint" runat="server" CssClass="NormalLinkSmall"

Quote:

Originally Posted by

>Print</asp:linkbutton>


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

Thanks a lot
-rockdaleIf 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.

rockdale wrote:

Quote:

Originally Posted by

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');
}
</script>
<asp:linkbutton id="lbnPrint" runat="server" CssClass="NormalLinkSmall"

Quote:

Originally Posted by

>Print</asp:linkbutton>


>
code behind
lbnPrint.Attributes.Add("onClick","NewWindow('print.aspx)");
>
>
>
>
>
Thanks a lot
-rockdale
>


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

Thanks a lot

Gran Andersson wrote:

Quote:

Originally Posted by

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.
>
rockdale wrote:

Quote:

Originally Posted by

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');
}
</script>
<asp:linkbutton id="lbnPrint" runat="server" CssClass="NormalLinkSmall"

Quote:

Originally Posted by

Print</asp:linkbutton>


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





Thanks a lot
-rockdale


Use the RegisterClientScript method.

rockdale wrote:

Quote:

Originally Posted by

I am sorry, but how can I output the client script? using
response.write? any code sample?
>
Thanks a lot
>
Gran Andersson wrote:

Quote:

Originally Posted by

>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.
>>
>rockdale wrote:

Quote:

Originally Posted by

>>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');
>>}
>></script>
>><asp:linkbutton id="lbnPrint" runat="server" CssClass="NormalLinkSmall"
>>>Print</asp:linkbutton>
>>code behind
>>lbnPrint.Attributes.Add("onClick","NewWindow('print.aspx)");
>>>
>>>
>>>
>>>
>>>
>>Thanks a lot
>>-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 ();
}

Gran Andersson wrote:

Quote:

Originally Posted by

Use the RegisterClientScript method.
>
rockdale wrote:

Quote:

Originally Posted by

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

Thanks a lot

Gran Andersson wrote:

Quote:

Originally Posted by

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.
>
rockdale wrote:
>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');
>}
></script>
><asp:linkbutton id="lbnPrint" runat="server" CssClass="NormalLinkSmall"
>>Print</asp:linkbutton>
>code behind
>lbnPrint.Attributes.Add("onClick","NewWindow('print.aspx)");
>>
>>
>>
>
>>
>Thanks a lot
>-rockdale
>>



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

rockdale wrote:

Quote:

Originally Posted by

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 ();
}
>
>
>
Gran Andersson wrote:

Quote:

Originally Posted by

Use the RegisterClientScript method.

rockdale wrote:

Quote:

Originally Posted by

I am sorry, but how can I output the client script? using
response.write? any code sample?
>
Thanks a lot
>
Gran Andersson wrote:
>If you open the new page from client script in the button, you can'tset
>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.
>>
>rockdale wrote:
>>Hi, all:
>>>
>>I have a linkbutton and I use javascript to open another webpage ina
>>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');
>>}
>></script>
>><asp:linkbutton id="lbnPrint" runat="server" CssClass="NormalLinkSmall"
>>>Print</asp:linkbutton>
>>code behind
>>lbnPrint.Attributes.Add("onClick","NewWindow('print.aspx)");
>>>
>>>
>>>
>>
>>>
>>Thanks a lot
>>-rockdale
>>>
>

0 comments:

Post a Comment