How do you centrally store and include reusable javascript functions into .aspx pages?

  • Thread starter Thread starter Nikki
  • Start date Start date
N

Nikki

Hi,

I would like to create a central storage place for javascript
functions that I can then access from any of my asp.net projects.

An example of what I need it for is as follows:

I have a class library that contains a function I use all the time (to
create a link around some text). That function in turn calls a
javascript function. Usually I would have put the javascript on the
page by using:

If (Not IsClientScriptBlockRegistered("clientScript")) Then
RegisterClientScriptBlock("clientScript", strJava)
End If

(where strJava = my javascript function etc)

Because IsClientScriptBlockRegistered is part of the Page class, I
can't do this in my class library.

The other option I thought of was including a javascript file as an
include on my .aspx page, but I would want the .js page to use in many
different projects, not just in one project.

Does anyone have any ideas as to what is the best way to store
reusuable javascript functions and how to access them?

Many thanks,

Nikki
 
(e-mail address removed) (Nikki) wrote in
Hi,

I would like to create a central storage place for javascript
functions that I can then access from any of my asp.net
projects.

An example of what I need it for is as follows:

I have a class library that contains a function I use all the
time (to create a link around some text). That function in turn
calls a javascript function. Usually I would have put the
javascript on the page by using:

If (Not IsClientScriptBlockRegistered("clientScript")) Then
RegisterClientScriptBlock("clientScript", strJava)
End If

(where strJava = my javascript function etc)

Because IsClientScriptBlockRegistered is part of the Page class,
I can't do this in my class library.

Nikki,

Yes you can. Create a method that takes a System.Web.UI.Page as a
parameter. Here's an example in C#:

public class JavaScriptHelpers
{
public static void RegisterJavaScriptSource(
System.Web.UI.Page page,
string key,
string code)
{
if (!page.IsClientScriptBlockRegistered(key))
page.RegisterClientScriptBlock(key, code);
}
}


From your page, you can call this method like this:

// Use "Me" instead of "this" as the first parameter
// in VB.NET.
JavaScriptHelpers.RegisterJavaScriptSource(this,
"clientScript", strJava);


Hope this helps.

Chris.
 
Hi Chris,

Thanks for your prompt reply!

I have tried passing in the Page to the function as follows, but it
didn't like it.

Public Class Detail

Function MapText(ByVal PC As String, ByVal Page As System.Web.UI.Page)
As String

...

End Function
End Class

It says that System.Web.UI.Page is not defined. I think this is what you
meant in your reply.

Many thanks in advance for your help.
 
Back
Top