我正在使用Web用戶控件(.ascx),它將包含在常規Web窗體(.aspx)中,但我需要能夠動態插入代碼到用戶控件的文檔頭部。在我的Coldfusion日子裏,<cfhtmlhead>可以解決問題。在ASP.NET中是否有這樣的相似或類似的黑客?ASP.NET動態地將代碼插入頭部
回答
要添加HTML標記,你可以做到以下幾點:
在你的用戶控件的代碼,您可以訪問Page.Header,這本身就是一種控制。到控制,你可以再添加新的控件:
HtmlGenericControl newControl = new HtmlGenericControl("someTag");
newControl.Attributes["someAttr"] = "some value";
Page.Header.Controls.Add(newControl);
要添加腳本標記你不需要進入頭部標記,因爲在所有ASP.NET具有對爲你做的工作ClientScriptManager輔助方法:
下面是一些代碼,你也可以把你的用戶控件的代碼示例:
// Register some inline script:
Page.ClientScript.RegisterClientScriptBlock(GetType(), "myAlertScript", "alert('hello!')", true);
// Register a script reference:
Page.ClientScript.RegisterClientScriptInclude(GetType(), "myLibraryScript", "~/Scripts/MyScriptLibrary.js");
this.Page.Header.Controls.Add
通過這樣做,您將控件添加到頭部分。您可以添加任何類型的控件。如果您覺得需要添加簡單文本(或者您想手動編寫標籤),請查看LiteralControl類。
有使用C#代碼來修改網頁標題here一些指導。它應該可以在頁面加載完成之前執行的任何服務器端代碼正常工作。
一個簡單的例如
HtmlHead head = Page.Header;
HtmlTitle title = new HtmlTitle();
title.Text = "Test Page";
head.Controls.Add(title);
HTMLHead引用是命名空間
System.Web.UI.HtmlControls
覆蓋自定義控件的load()方法添加而父.aspx頁面中被加載服務器 - 你需要在頁面標題中的控件或引用側。
我有一個簡單的解決方案。根據頁面的URL(作爲關鍵字)創建一個運行時內存緩存,該緩存包含有關y的x個信息(無論是文件引用,腳本文本還是生成JavaScript的類)並將其數據序列化爲JSON。 Newtonsoft對任何類的實例都有幫助。實際上,您可以使用它的輸出來根據給定的輸入初始化類的任何新實例。從某種意義上說,這意味着您可以讓您的任何特定類的實例自動實例化,而不管該實例處於何種用戶控制。最後,您創建一個簡單的Web表單來充當腳本引用和最終端點。它提取JavaScript(或者它是什麼),並將頭文件中的腳本引用吐出需要的客戶端代碼。
我意識到這是一個老問題,但這是另一個例子。
試試這個:
Page.Header.Controls.Add(
new LiteralControl(
"<script>alert('Literal Added to <Head>.');</script>"
)
);
如果你想在<head>
的特定索引添加腳本可以使用
AddAt(index, new LiteralControl(...))
其中index 0等於的<head>
而且頂部,您需要在頭標中添加runat="server"
,例如<head id="head1" runat="server">
- 1. 使用C#動態地將ASP.NET代碼寫入.aspx文件
- 2. 插入asp.net代碼
- 3. WordPress的 - 如何將代碼插入頭部?
- 4. JavaScript將CSS插入頭部
- 5. asp.net將動態行插入表中間
- 6. 動態插入子ID到iframe代碼
- 7. 我需要動態地將asp.net(vb)代碼的值引入支付網關.aspx?
- 8. ASP.NET中的動態代碼
- 9. 動態地將複選框插入ASP.NET中具有可變數量字段的表中。 C#代碼隱藏
- 10. 如何將JavaScript代碼動態地嵌入到HTML中
- 11. 將代碼插入.load
- 12. ASP.net將html編碼代碼插入頁面
- 13. 動態插入日期到gridview標頭
- 14. Xcode 4自動代碼完成 - 如何將NO插入代碼
- 15. 如何使用Javascript動態地將腳本插入到HTML頭中?
- 16. 安全地插入代碼到MySQL數據庫在c#(asp.net)
- 17. jQuery的數據表插入,更新,刪除代碼雅鏈接在asp.net動態
- 18. 本地化在asp.net中插入動態內容的句子
- 19. 如何在Asp.Net MVC中動態插入部分視圖
- 20. Webmatrix佈局 - 插入頭部?
- 21. 動態地從一個字符串注入HTML代碼到一個asp.net頁
- 22. Java碼頭外部地址
- 23. 在函數內部插入代碼?
- 24. ASP.net UpdatePanel動態使用C#代碼
- 25. 插入動態數據插入在asp.net一個SQL Server用C#
- 26. 動態地在QListWidget中插入項目
- 27. 插入Div內容動態地由JavaScript
- 28. ASP.net嵌入代碼
- 29. 輸出動態PHP代碼插入到一個動態創建的PHP頁面
- 30. 如何將包含的部分插入代碼放入父代的塊中?
下面的答案似乎都依賴於具有runat =「server」屬性的頭,否則Page.Header爲null。 – user420667 2017-01-24 01:06:46