Χρήση Javascript σε ASP .NET 2

Σήμερα χρειάστηκε σε μια ASP .NET εφαρμογή που φτιάχνω, να χρησιμοποιήσω κάποιες javascript functions. Μιας και ήθελα να παίζει σε μία συγκεκριμένη content page και όχι σε όλες, δεν μπορούσα να το γράψω με τον κλασσικό τρόπο ( //mpla mpla ) στον HTML κώδικα της Master σελίδας.

Με λίγο ψάξιμο, είδα πως γίνεται προγραμματιστικά. Η ASP .NET χρησιμοποιεί το νέο Page.ClientScript property για να δηλώσει Javascript κώδικα.
Το ClientScript object έχει πολλά properties και methods, θα αναφερθώ σε 3 από αυτές.

Χρήση του Page.ClientScript.RegisterClientScriptBlock

Η Page.ClientScript.RegisterClientScriptBlock μας επιτρέπει να δηλώσουμε μία javascript συνάρτηση στην κορυφή της σελίδας.
Δηλαδή, με κώδικα στο Load της σελίδας όπως ο παρακάτω

string myScript = @”function sayHi() {alert(‘Hi’);}”;
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),”MyScript”,myScript,true);

και χρήση του onClientClick=”sayHi()” σε ένα Web Control, μπορούμε να χρησιμοποιήσουμε Javascript η οποία θα φορτώνει κατά την εκκίνηση της σελίδας και πριν το <body> στοιχείο της σελίδας.

Χρήση του Page.ClientScript.RegisterStartupScript

Η διαφορά της με την προηγούμενη είναι ότι τοποθετεί το script στο τέλος της σελίδας και όχι στην αρχή. Χρησιμοποιείται για να γραφεί Javascript κώδικας ο οποίος θα έχει reference σε συγκεκριμένα HTML controls της σελίδας, οπότε και θα πρέπει να γραφεί στο HTML output αφού έχουν τοποθετηθεί τα HTML controls στη σελίδα από τον browser (χρήση της RegisterClientScriptBlock με αυτό τον τρόπο θα δημιουργούσε javascript error).

Χρησιμοποιείται ως εξής
string myScript = @”function sayHi() {alert(document.forms[0][‘TextBox1’].value);}”; /*με την προυπόθεση ότι έχουμε ένα textbox με ID TextBox1 στη σελίδα μας*/
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),”MyScript”,myScript,true);
 

Χρήση του Page.ClientScriptRegisterClientScriptInclude 

Αυτή η συνάρτηση χρησιμοποιείται για να φορτώσουμε .js αρχεία, στα οποία έχουμε γράψει τις Javascript συναρτήσεις μας.

Χρησιμοποιείται ως εξής
string myScript = “myjs.js”;
Page.ClientScript.RegisterClientScriptInclude(“myKey”,myScript);

και δίνει το ακόλουθο HTML αποτέλεσμα

http://myjs.js 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s