Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create javaScript variable in code behind of asp.net

Tags:

asp.net

How do I register a Javascript variable on the server side (backend) and access it on the client side (Javascript file), without a hidden field, Literal, etc.?

like image 947
Basavaraj Badiger Avatar asked Dec 09 '10 12:12

Basavaraj Badiger


4 Answers

You can use the RegisterClientScriptBlock-Function from the Page's ClientScriptManager.

Page.ClientScript.RegisterClientScriptBlock(Page.GetType, "initMyClientVariable", "var myClientVariable=null;", True)

EDIT: according to your new informations, that you want to register a client array, use ClientScriptManager's RegisterArrayDeclaration Method.

VB.Net example:

Dim myArrayValue As String = """1"", ""2"", ""text"""
Page.ClientScript.RegisterArrayDeclaration("myClientArray", myArrayValue)

According to the new information in my comments that you need access to that variable from an external js-file: you should pass the js-array as argument to the function in the js-file. For example:

callFunctionInJsFile(checkBoxes);
like image 156
Tim Schmelter Avatar answered Sep 20 '22 17:09

Tim Schmelter


You can put the following code in .aspx file ...

<script type="text/javascript" >
    var date1 = "<%: DateTime.Now %>";
    var date2 = "<%= DateTime.Now %>";
</script>

<%:  %> works under ASP.NET 4
like image 34
Sword-Breaker Avatar answered Sep 21 '22 17:09

Sword-Breaker


You can put a literal in the xml portion of the code and assign that literal some text:

myLiteral.Text = "<script language=\"javascript\">var myVar = 24;</script>";

This makes myVar globally available on the client side once it's rendered. You can also use the ClientScriptManager object to use Asp.Net to inject scripts and variables.

like image 38
Joel Etherton Avatar answered Sep 18 '22 17:09

Joel Etherton


First place an <asp:Literal ID="Literal1" runat="server"></asp:Literal> tag in the <head> of your .aspx file.

Then in the server side code in your .aspx.cs file, do something like Literal1.Text = "<script type=\"text/javascript\">var timer = 3600</script>" and you've got yout javascript variable called timer.

That's it. Have fun!

like image 25
Skorpioh Avatar answered Sep 19 '22 17:09

Skorpioh