2011-02-03 107 views
0

我正在創建一個自定義控件,並想知道是否可以在它所放置的頁面的頭標記中呈現任何JavaScript?我想我需要使用FindControl方法,但不知道我需要綁定到什麼。我在想頁面對象?讓我知道如果我正在朝着正確的方向思考,還是有另一種選擇。ASP.Net自定義控件呈現頭標籤中的JavaScript代碼?

我唯一關心的是上面提到的想法是,如何在頭標籤中放置一些代碼時呈現我的所有內容?

感謝

回答

2
protected override void OnPreRender(EventArgs e) { 
    base.OnPreRender(e); 

    string includeTemplate = "<link rel='stylesheet' type='text/css' href='{0}' />\n"; 
    string includeLocation = Page.ClientScript.GetWebResourceUrl(GetType(), "Path.To.Resources.css"); 
    LiteralControl include = new LiteralControl(String.Format(includeTemplate, includeLocation)); 
    Page.Header.Controls.Add(include); 
} 

我在控制庫中使用這個來包含css和javascript文件。

+0

PERFECT !!!!!我不認爲我有權訪問頁面對象。甜! – DDiVita 2011-02-03 16:45:41

1

是的,如果你這樣做:

this.Page.Header 

這使您可以訪問head元素,你可以腳本標記動態地添加到此。我想我使用了一個LiteralControl來靜態追加腳本標記,並且我在Load事件中做了這個工作,這對我很好。我也看到了這種方法:http://forums.asp.net/t/1306647.aspx

如果使用AJAX(Page.ClientScript也有相同的方法,也可以使用ScriptManager.RegisterClientScriptBlock或RegisterClientScriptInclude方法,而不是在頭部,但在主體中添加腳本)。

HTH。

相關問題