2012-07-16 23 views
0

我已經創建了ajax日期擴展器的用戶控件「日曆」以及用於獲取日期的文本框。現在即時嘗試爲我的表中填充的所有行動態創建此控件。它給出了以下錯誤: - 只有一個ScriptManager實例可以添加到頁面。在添加多個Web用戶控件時,發生錯誤「只能將一個ScriptManager的一個實例添加到頁面」

下面的代碼: -

tc = new TableCell(); 
      tc.Style["width"] = "15%"; 
      Calendar1 = (ASP.Calendar)LoadControl("../Calendar.ascx"); 
      Calendar1.ID = "tbDate" + Convert.ToString(_id); 
      tc.Controls.Add(Calendar1); 
      tr.Cells.Add(tc); 
      tc.Dispose(); 
      tc = null; 

,我已經聲明瞭一個全局變量: - 公共ASP.Calendar CALENDAR1;

在此先感謝您的建議。

+0

從calendar.ascx中刪除額外的ScriptManager – Aristos 2012-07-16 07:47:39

+0

請顯示日曆的代碼示例 – 2012-07-16 07:50:28

回答

0

您需要在Web用戶控件內部使用ScriptManagerProxy組件,而不是使用完整的ScriptManager。 ScriptManagerProxy是爲了這種用途而創建的。

「當已經在父元素中定義了ScriptManager控件時,啓用嵌套組件(如內容頁面和用戶控件)以向頁面添加腳本和服務引用。 - http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanagerproxy.aspx

因此,基本上確保您在調用頁面本身上使用ScriptManager,並在您的Calendar.ascx Web用戶控件中使用ScriptManagerProxy組件。

如果您的設計不真的允許這樣做,那麼如何創建第二版Calendar.ascx僅用作嵌套控件?

+0

Johanvw ... thx a ton ..... ScriptManagerProxy真的解決了我的問題。 – 2012-07-16 08:19:01

+0

您的歡迎:)很高興的信息幫助! – Johanvw 2012-07-16 08:23:34

0

您已在頁面中多次包含腳本管理器,可能在用戶控件本身中。

相關問題