Inkludera Javascript i head med Asp.Net

Så här gör man för att inkludera Javascript inuti head-taggen genom kod i Asp.Net.

HtmlGenericControl Include = new HtmlGenericControl("script"); Include.Attributes.Add("type", "text/javascript"); Include.Attributes.Add("src","FilSomSkaInkluderas.js"); this.Page.Header.Controls.Add(Include);

Eller för att lägga till en kodsnutt.

HtmlGenericControl Include2 = new HtmlGenericControl("script"); Include2.Attributes.Add("type", "text/javascript");
Include2.InnerHtml = "alert('JavaScript inuti Page Header');"; this.Page.Header.Controls.Add(Include2);

Glöm inte att skriva in runat-attributet på head-taggen

<head runat="server">

Hittade även en artikel om hur man kan få Visual Studio att gruppera javascriptfiler under .aspx-filen i Solution Explorer. Krävs dock ett tillägg i register-nycklarna. Snälla VS utvecklare - lägg till detta direkt i programmet.

Comments

[…] Att inkludera CSS-filer dynamiskt […]
Hej. Gruppera javascript"hacket" till visual studio fungerade till vs2008 med :) För att lägga till script dynamiskt till en webbsida kan man även att använda klasser för 2.0 specialiserade för detta ändamål. Klassen Page har en intern instans av ClientScriptManager. Denna kan även användas från usercontrol. Så allmänt (oavsett i en Page eller UserControl kan man då skriva): this.Page. ex: this.Page.ClientScriptManager.XXXMetod(..... ); [Inkludera Javascript inuti head-taggen] Vill man lägga till en scriptreferens för en extern .js-fil til headern kan man skriva: ClientScriptManager cs = this.Page.ClientScript; cs.RegisterClientScriptInclude (string key,string url) där key är till för att identifiera scriptet ( så man kan undvika att registrera det flera gånger) Mer info på: ttp://msdn2.microsoft.com/en-us/library/2552td66.aspx [Lägga till en kodsnutt.] För att registrera ett kodblock till headern skriver man: cs.RegisterClientScriptBlock (Type type, String key, String script) Mer info på:http://msdn2.microsoft.com/en-us/library/btf44dc9.aspx [undvika multipla registreringar] Som tips anger MS att man bör kontrollera om scriptet redan är registrerat mha: if (!cs.IsStartupScriptRegistered(Type type, String key)) mer info på: ttp://msdn2.microsoft.com/en-us/library/at3x3a1z.aspx [script "längst ned"] In context så är det ofta pga SEO och klientvalidering mha .js så att man vill placera sitt script längst ned på sidan. Detta görs med RegisterStartupScript. [OnSubmit] Vill man istället utföra sin kod när formuläret skall postas ( tex formulärsvalidering) finns det en speciell metod för detta: RegisterOnSubmitStatement [Allmän översikt] Översikt mellan de olika metoderna på: http://msdn2.microsoft.com/en-us/library/ms178207.aspx
Hej. Gruppera javascript"hacket" till visual studio fungerade till vs2008 med :) För att lägga till script dynamiskt till en webbsida kan man även att använda klasser för 2.0 specialiserade för detta ändamål. Klassen Page har en intern instans av ClientScriptManager. Denna kan även användas från usercontrol. Så allmänt (oavsett i en Page eller UserControl kan man då skriva): this.Page. ex: this.Page.ClientScriptManager.XXXMetod(..... ); [Inkludera Javascript inuti head-taggen] Vill man lägga till en scriptreferens för en extern .js-fil til headern kan man skriva: ClientScriptManager cs = this.Page.ClientScript; cs.RegisterClientScriptInclude (string key,string url) där key är till för att identifiera scriptet ( så man kan undvika att registrera det flera gånger) Mer info på: ttp://msdn2.microsoft.com/en-us/library/2552td66.aspx [Lägga till en kodsnutt.] För att registrera ett kodblock till headern skriver man: cs.RegisterClientScriptBlock (Type type, String key, String script) Mer info på:http://msdn2.microsoft.com/en-us/library/btf44dc9.aspx [undvika multipla registreringar] Som tips anger MS att man bör kontrollera om scriptet redan är registrerat mha: if (!cs.IsStartupScriptRegistered(Type type, String key)) mer info på: ttp://msdn2.microsoft.com/en-us/library/at3x3a1z.aspx [script "längst ned"] In context så är det ofta pga SEO och klientvalidering mha .js så att man vill placera sitt script längst ned på sidan. Detta görs med RegisterStartupScript. [OnSubmit] Vill man istället utföra sin kod när formuläret skall postas ( tex formulärsvalidering) finns det en speciell metod för detta: RegisterOnSubmitStatement [Allmän översikt] Översikt mellan de olika metoderna på: http://msdn2.microsoft.com/en-us/library/ms178207.aspx