zoukankan      html  css  js  c++  java
  • 最近开发的一个多功能选择器总结1

    关于脚本使用的总结

    1.脚本全部作为嵌入的资源编译进去了。

    2.这个控件使用到了微软Ajax框架中MicrosoftAjax.js,还有jQuery及jQuery的拖动插件

    3.关于脚本的加载顺序。因为我自己控件的js中用到了MicrosoftAjax.js的一些方法,如注册命名空间,注册类

    添加及移除事件等。所以要保证MicrosoftAjax.js在我的控件脚本之前添加。虽然我在页面中添加了ScriptManager控件

    但是MicrosoftAjax.js总是在我的控件脚本之后加载。解决方法如下:

    /// <summary>
    /// 注册这个控件的客户端脚本
    /// </summary>
    private void RegisterControlClientScript()
    {
        ScriptManager sm 
    = ScriptManager.GetCurrent(this.Page);

        
    if (sm == null)
        
    throw new Exception("sg_ComplexSelector控件必须在页面添加ScriptManager");

        
    if (!string.IsNullOrEmpty(this.ClientScriptPath))
        {
        sm.Scripts.Add(
    new ScriptReference(this.ClientScriptPath));
        }
        
    else
        {
        
    //Page.ClientScript.RegisterClientScriptResource(this.GetType(), "Sagacity.Controls.sg_ComplexSelector.js");
        sm.Scripts.Add(new ScriptReference(Page.ClientScript.GetWebResourceUrl(this.GetType(), "Sagacity.Controls.sg_ComplexSelector.js")));
        }
    }

    大家看看我注册脚本的方式,就能发现两种注册方法不同了。

    简单地说。如果页面有ScriptManager控件,最好有这个控件来负责加载其他js,并且在这个脚本中加上

    if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();关于微软Ajax框架更多东西,可以参考

    赵劼(你不会不知道此人吧?)先生的blog,或其他参考书.

    4.MicrosoftAjax添加元素事件$addHandler和我们用普通方式如document.onkeydow=function...之类的略有不同。

    $addHandler是将事件添加到一个类似eventList的数组中,并不会直接赋值给元素的相应事件上。所以你$addHandler后

    并不会在该控件的事件上直接看到你添加的事件函数。

    作者:Jackhuclan
    出处:http://jackhuclan.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    delphi 焦点定位
    delphi cxgrid 添加分页
    推动力
    python enumerate 函数用法
    Python pass语句作用与用法
    Python 元组知识点
    python 练习多级菜单思路
    一点练习题
    优化mysql服务器
    对自己的忠告
  • 原文地址:https://www.cnblogs.com/jackhuclan/p/1399785.html
Copyright © 2011-2022 走看看