2010-01-03 72 views
8

我有一個ASP UpdatePanel來更新gridview,它工作正常,現在我想也爲那裏的一些控件使用AjaxControlToolkit,但是當我將所有的東西運行我得到一個錯誤只有一個ScriptManager的實例可以添加到頁面

"Only one instance of a ScriptManager can be added to the page." 

儘管我評論了ASP ScriptManager並使用了toolkitscriptmanager。但請注意,我仍在使用ASP UpdatePanel。

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> 
        </asp:ToolkitScriptManager> 

        <!-- <asp:ScriptManager ID="ScriptManager1" runat="server"> 
           </asp:ScriptManager>--> 

有什麼想法可能會出錯?

回答

13

您正在使用HTML註釋來隱藏ASP.NET服務器標記。使用一臺服務器,而不是評論:

<%-- <asp:ScriptManager ID="ScriptManager1" runat="server"> 
          </asp:ScriptManager> --%> 

ASP.NET會忽略HTML註釋,就像它忽略所有標籤不中用runat =「服務器」對他們或不與<%啓動。

+4

一個簡單的方法來在網絡表單中發表評論(並避免這樣的錯誤)是使用熱鍵CTRL + K,C來評論,而CTRL + K,U來取消註釋。在代碼隱藏中,您可以將光標放在一行的任何位置以評論/取消註釋;在網絡表單中,您突出顯示的選擇必須在您想評論的地方開始和結束。 – 2010-01-03 22:51:01

+1

我一直都在使用這些快捷鍵!選擇多行(或者,如你所說,根本沒有選擇)並且能夠註釋掉一些代碼是非常快速的。非常適合調試你想暫時消除一些代碼或標記的奧祕。 – Eilon 2010-01-03 23:00:07

7

原始錯誤消息告訴您嘗試擁有多個ScriptManger對象。如果您在MasterPage中使用ScriptManager並且在繼承母版頁的單個頁面中,則會出現這種情況。 爲了避免這種情況,有<Asp:ScriptManagerProxy>作爲另一個ScriptManager工作,雖然它只將調用傳遞給主頁上的ScriptManager對象。

相關問題