代码之家  ›  专栏  ›  技术社区  ›  Shantanu Gupta

如何解决这个javascript错误,我正在使用ToolScriptManager for UpdatePanel

  •  0
  • Shantanu Gupta  · 技术社区  · 14 年前

    我正在尝试注册下面提到的javascript,以便与GridView一起使用,在GridView上添加冻结功能。 编译时抛出错误 Microsoft JScript运行时错误:“Sys”未定义

    如何修复。

    <script language="javascript" type="text/javascript">
        // This Script is used to maintain Grid Scroll on Partial Postback
        var scrollTop;
        //Register Begin Request and End Request 
        Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
        //Get The Div Scroll Position
        function BeginRequestHandler(sender, args) 
        {
        var m = document.getElementById('divGrid');
        scrollTop=m.scrollTop;
        }
        //Set The Div Scroll Position
        function EndRequestHandler(sender, args)
        {
        var m = document.getElementById('divGrid');
        m.scrollTop = scrollTop;
        } 
    </script>  
    
    2 回复  |  直到 14 年前
        1
  •  0
  •   Bala    14 年前
        <script type="text/javascript">
            var prm = Sys.WebForms.PageRequestManager.getInstance();
            prm.add_initializeRequest(initializeRequest);
            prm.add_endRequest(endRequest);
            var _postBackElement;</br>
            function initializeRequest(sender, e) 
         {
    if (prm.get_isInAsyncPostBack()) 
    { e.set_cancel(true); }
    
        var m = document.getElementById('divGrid'); 
        scrollTop=m.scrollTop; 
        } 
        function endRequest(sender, e)
        { 
        var m = document.getElementById('divGrid'); 
        m.scrollTop = scrollTop;
        } 
                </script>
    
    
    
    try adding the following in web.config under <system.web>
    <httpHandlers>
    <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
    </httpHandlers>
    <httpModules>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>
    
        2
  •  0
  •   bluelightning1    12 年前

    这是一篇很老的文章,但是我认为识别很重要,在我的代码中还有一个东西需要识别。简单地说,在使用母版页时,我没有将javascript代码放在正确的位置。

    Reference:

    代码不完整,但应该提供足够的细节。

    <asp:content id="Content2" contentplaceholderid="ContentPlaceHolder1" runat="server">
    <div>
    
        <script type="text/javascript">
    
            var scrolltop;
       Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
       Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    
            function BeginRequestHandler(sender, args) {
                var elem = $get("scrollableContainer");
    
                scrolltop = elem.scrollTop;
            }
    
            function EndRequestHandler(sender, args) {
                var elem = $get("scrollableContainer");
    
                elem.scrollTop = scrolltop;
            }
        </script>
    
        <asp:updatepanel id="UpdatePanel1" runat="server" updatemode="Conditional">
            <contenttemplate>
            </contenttemplate>
        </asp:updatepanel>
    

    希望这有帮助!