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.

Signature
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 - 28 Apr 2004 10:50 GMT
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
> 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
[quoted text clipped - 19 lines]
>
> Both functions are called in click event of 2 button's.
ruca - 28 Apr 2004 11:22 GMT
Hi Patrice,
> Dont' you have a local variable that uses the same name ?
No.
> Do you have a postaback between these two calls ? (that would reinitialize
> of course the variable value though it shouldn't be false).
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

Signature
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
> It should work. Try :
>
[quoted text clipped - 34 lines]
> >
> > Both functions are called in click event of 2 button's.
Patrice - 28 Apr 2004 12:14 GMT
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
> Hi Patrice,
>
[quoted text clipped - 54 lines]
> > >
> > > Both functions are called in click event of 2 button's.
ruca - 28 Apr 2004 12:21 GMT
But why this works with links, and not with buttons? This is what I can't
understand.

Signature
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
> 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
[quoted text clipped - 77 lines]
> > > >
> > > > Both functions are called in click event of 2 button's.
David Jessee - 29 Apr 2004 06:24 GMT
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.
> 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
[quoted text clipped - 15 lines]
> 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.