all groups > dotnet jscript > april 2004 >
You're in the

dotnet jscript

group:

Global variable


Global variable ruca
4/28/2004 10:10:31 AM
dotnet jscript:
How can I declare a global variable in my .js file, that I can preserve her
value each time I need to call any function of .JS file in my ASP.NET
application?

Example:
var aux=null;

function myFunction1()
{
...
}

function myFunction2()
{
...
}

Now when I call myFunction1(), aux = true, and when I call myFunction2(),
aux = false. The problem is that I need to preserve the previous value to
test it in both functions. How?
Help me please.

Both functions are called in click event of 2 button's.

--
Programming ASP.NET with VB.NET
Thank's (if you try to help me)
Hope this help you (if I try to help you)
ruca

Re: Global variable ruca
4/28/2004 11:22:09 AM
Hi Patrice,

[quoted text, click to view]
No.

[quoted text, click to view]
I think that what happens is that when I click on button the page load
again, right?
But If I have a link (with href=...) instead of a button (click event) the
thing works fine.

But in Load event I have:

if not Page.IsPostBack() then
...
end if


--
Programming ASP.NET with VB.NET
Thank's (if you try to help me)
Hope this help you (if I try to help you)
ruca


"Patrice" <nobody@nowhere.com> escreveu na mensagem
news:uIiK7YQLEHA.1484@tk2msftngp13.phx.gbl...
[quoted text, click to view]

Re: Global variable Patrice
4/28/2004 11:50:22 AM
It should work. Try :

var v;
function a(){v=true}
function b(){alert(b)}
a();
b(); // Should display true

Dont' you have a local variable that uses the same name ?
Do you have a postaback between these two calls ? (that would reinitialize
of course the variable value though it shouldn't be false).

Patrice


"ruca" <ruuca@iol.pt> a écrit dans le message de
news:%23e05hDQLEHA.1192@TK2MSFTNGP11.phx.gbl...
[quoted text, click to view]

Re: Global variable ruca
4/28/2004 12:21:53 PM
But why this works with links, and not with buttons? This is what I can't
understand.


--
Programming ASP.NET with VB.NET
Thank's (if you try to help me)
Hope this help you (if I try to help you)
ruca


"Patrice" <nobody@nowhere.com> escreveu na mensagem
news:OX0cJIRLEHA.1144@TK2MSFTNGP12.phx.gbl...
[quoted text, click to view]

Re: Global variable Patrice
4/28/2004 1:14:52 PM
ASP.NET simulates the usual statefull event driven programming model but
it's worth to note that the server side "model" and what you have client
side is not the same "thing". The server side "model" is used to create the
client side code (mostly HTML+JavaScript snippets) that will reproduce what
you modelled server side. Client-side you'll have also some info (the
viewstate) that allows to recreate automatically the server side model from
scratch during the next server round trip.

In your case, you initialize a variable client side code, then you have a
postback. The server side "model" is recreated to regenerate client side
code (possibly updated depending on what you do on postback). When the new
code is returned to the navigator the client side variable is initialized
again.

This variable should be persisted beetween calls (for example using an
hidden field). You should find more details on the general architecture in
the documentation.

Patrice


"ruca" <ruuca@iol.pt> a écrit dans le message de
news:%239L%23ZrQLEHA.2396@TK2MSFTNGP12.phx.gbl...
[quoted text, click to view]

Re: Global variable David Jessee
4/29/2004 12:24:55 AM
There's a way around this, thought its not direct, depending on the context
of your "Global" definition.

You can access Cookie values through JavaScript. If you manage a variable
by always referring to a value inside of the client's cookie, then that
should work. (Global within a User's context, as opposed to a session
context)

You could, instead of using a js variable (var x;) always refer to a value
that is inside of a hidden field (make sure that the hidden field is set to
runat="server"). This would be "global" within a given page context.

You could subclass your page class. Create a Class, deriving from page,
that has a hidden field. When the page posts back, you perform some sort of
synch operation with that hidden field and an application/Session variable
and expose that value as a property of the page. That way all of the pages
that derive from this subclass would automatically have access to that
variable (effectively creates a "Global" Session/Applicatoin) level value
that script can access). Side Note...if you subclass your Page class,
you'll want to place the subclass inside of a seperate assembly and set a
reference to it in the Visual Studio IDE, otherwise the designer gets a
little funky.

If there's any way around doing this, I'd recommend it. Take a step back
and see if there's something you can do to your architecture to make this
unnecessary. However, these approaches should work if you have to take the
approach you're looking at.



[quoted text, click to view]

AddThis Social Bookmark Button