2010-01-12 54 views
1

我想知道是否有可能有一個ASP.NET AJAX自定義用戶控件'註冊'它使用CSS文件,就像它與JS文件一樣。 ?如何有一個asp.net ajax控件自動引用css文件

例如:實現IScriptControl接口允許腳本管理器調用GetScriptReferences(),是否有類似的CSS文件?

回答

2

號你可以寫自己的方法來使用嵌入的資源,並生成html,並寫入到該頁面。

作爲一種最佳實踐方法,我不會推薦這樣做。你應該有一個明確的風格和標記分離。如果你想編寫一個依賴於樣式表的自定義控件,那麼我建議你提供一個默認的css文件以及你的控件。

EDIT(回答在評論問題)

你可以運行該代碼的CSS文件的引用添加到您的網頁(在運行時)。請注意,因爲您使用的是RegisterClientScriptBlock method,所以可以管理插入重複。下面是該方法鏈接的摘錄:

客戶端腳本由其鍵和其類型唯一標識。具有相同鍵和類型的腳本被認爲是重複的。只有一個具有給定類型和密鑰對的腳本可以在頁面中註冊。嘗試註冊已註冊的腳本不會創建腳本的副本。

StringBuilder sb = new StringBuilder(); 

sb.Append(@"<link rel=""stylesheet"" type=""text/css"" href="""); 
sb.Append(this.Page.ClientScript.GetWebResourceUrl(this.GetType(), resourceName)); 
sb.Append(@""" />"); 

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyCSS", sb.ToString()); 
+0

這就是我想要做的。我有一個需要與控件一起發佈的css文件,就像JS文件一樣。我不想手動寫出css文件的名稱,因爲它與程序集中的JS文件一起嵌入。除此之外,如果我要說在一個頁面上有50次控制(就像文本框中說的那樣),它會嘗試重新引用css頁面50次? – mrwayne 2010-01-13 00:31:33

+0

如果這是你想要做的,然後用代碼示例查看修改後的答案。 – 2010-01-13 00:53:36

+0

我很確定這就是我想要做的。謝謝! – mrwayne 2010-01-13 03:31:15