2010-05-12 173 views
2

在呈現頁面之前(或在此期間),我想追加一段代碼(Java腳本)。但是,當我嘗試通過Page.Controls屬性添加新的LiteralControl時,出現錯誤:追加到BODY元素

The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>). 

如何找到該問題?

回答

3

爲了避免這樣的問題做了以下內容:

  1. 在你的ASPX
  2. 添加 <asp:Placeholder id="Placeholder1" runat="server" />控制
  3. 在後面的代碼中,將該控件添加到該佔位符的Controls集合中:

    Placeholder1.Controls.Add(myControl);

0

您可以將LiteralControl添加到您的標記中,並將它的Text屬性設置爲代碼隱藏。

編輯:

另一個(可能更正確)的選擇是使用ScriptManager.RegisterClientScriptBlock

+0

不幸的是,它不會工作:我有一個BasePage類繼承自Page類。我想在我的基類中做(我不使用母版頁)。 – dragonfly 2010-05-12 13:01:12

+0

@dragonfly我已經更新了我的答案。 – 2010-05-12 13:14:42

+0

好的謝謝。但是...如果我想添加HTML代碼,而不是Java腳本呢? :)) – dragonfly 2010-05-12 13:26:49