Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / Languages / JScript / April 2004

Tip: Looking for answers? Try searching our database.

Global variable

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
ruca - 28 Apr 2004 10:10 GMT
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.

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.