Groups | Blog | Home
all groups > asp.net > june 2003 >

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


nikkinz NO[at]SPAM talk21.com
6/30/2003 9:23:04 PM
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,

Chris R. Timmons
6/30/2003 9:43:46 PM
nikkinz@talk21.com (Nikki) wrote in
news:8dac9744.0306302023.4f51e477@posting.google.com:

[quoted text, click to view]

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.
-------------
C.R. Timmons Consulting, Inc.
Nikki NZ
6/30/2003 10:18:06 PM
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.

*** Sent via Developersdex http://www.developersdex.com ***
AddThis Social Bookmark Button