在呈現頁面之前(或在此期間),我想追加一段代碼(Java腳本)。但是,當我嘗試通過Page.Controls屬性添加新的LiteralControl時,出現錯誤:追加到BODY元素
The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
如何找到該問題?
在呈現頁面之前(或在此期間),我想追加一段代碼(Java腳本)。但是,當我嘗試通過Page.Controls屬性添加新的LiteralControl時,出現錯誤:追加到BODY元素
The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
如何找到該問題?
爲了避免這樣的問題做了以下內容:
<asp:Placeholder id="Placeholder1" runat="server" />
控制
在後面的代碼中,將該控件添加到該佔位符的Controls集合中:
Placeholder1.Controls.Add(myControl);
您可以將LiteralControl
添加到您的標記中,並將它的Text
屬性設置爲代碼隱藏。
編輯:
另一個(可能更正確)的選擇是使用ScriptManager.RegisterClientScriptBlock
不幸的是,它不會工作:我有一個BasePage類繼承自Page類。我想在我的基類中做(我不使用母版頁)。 – dragonfly 2010-05-12 13:01:12
@dragonfly我已經更新了我的答案。 – 2010-05-12 13:14:42
好的謝謝。但是...如果我想添加HTML代碼,而不是Java腳本呢? :)) – dragonfly 2010-05-12 13:26:49