2010-01-03 42 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对象。

相关问题