【问题标题】:ASP.Net server control for modal popup using Telerik Ajax and need to disable browser window scrolling使用 Telerik Ajax 的 ASP.Net 服务器控制模式弹出窗口,需要禁用浏览器窗口滚动
【发布时间】:2011-07-29 12:18:01
【问题描述】:

我有一个用于模式弹出的 ASP.Net 服务器控件,并且该页面使用 Telerik Ajax。弹出窗口时,如果您使用鼠标滚轮,浏览器窗口会继续滚动,我想禁用它。

我尝试执行 javascript 以显示来自服务器控件的警报,如下所示,但没有任何反应(真的,我想在禁用浏览器窗口滚动之后使用注释行)。服务器控制代码在回发时执行(而不是在初始页面加载时)。不知道还需要做什么

protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            //register javascript here if needed
            AddScript();

        }

        private void AddScript()
        {
            ClientScriptManager csm = this.Page.ClientScript;
            string scriptblock = "<script type=\"text/javascript\">alert('hi');</script>";
            //string scriptblock = "<script type=\"text/javascript\">$(\"body\").css(\"overflow\", \"hidden\");</script>";

            string scriptname = "DisableBrowserScrollBar()";

            Type csType = this.GetType();
            if (!csm.IsClientScriptBlockRegistered(csType, scriptname))
            {
                csm.RegisterClientScriptBlock(csType, scriptname, scriptblock, false);
            }
        }

【问题讨论】:

    标签: javascript asp.net ajax telerik


    【解决方案1】:

    您的页面上有 ScriptManager 吗?如果是这样,您需要这样做:

    ScriptManager.RegisterStartupScript(Page, csType, scriptName, scriptblock, true);
    

    【讨论】:

    • 请注意,我正在尝试从服务器控件执行此操作,我没有对 RadScriptManager 的引用。如果我从我的页面模板基类中执行相同的操作(调用 AddScript()),那么所有页面都继承自它,一切正常。
    • 我联系了 Telerik 支持,他们提到这是由于 Telerik AJAX 控件造成的问题,我需要使用 RadScriptManager 对页面基础模板中母版页的引用来注入脚本(而不是来自服务器控件)。
    猜你喜欢
    • 2013-02-20
    • 1970-01-01
    • 2013-11-03
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多