zoukankan      html  css  js  c++  java
  • ASP.NET AJAX 控件开发基础

    在 JavaScript 当前广泛使用的版本中,它缺少 .NET 开发人员所熟悉的几个 OOP 的关键概念,而 ASP.NET AJAX 可以模拟其中的大多数,而且 ASP.NET AJAX 的目标是将使用 .NET 的开发人员所熟悉的某些其他构造(例如属性、事件、枚举和接口)转换成 JavaScript.ASP.NET AJAX 中的反射 API 将检查所有类型(无论是内置类型、类、接口、命名空间、或者甚至是枚举),而它们包括的类似 .NET Framework 的函数(例如 isInstanceOfType 和 inheritsFrom)可以在运行时检查类的层次结构。

    下面是一个典型的AjaxControlToolkit的控件脚本,红色部分为添加的解释语句:

    // (c) Copyright Microsoft Corporation.
    // This source is subject to the Microsoft Permissive License.
    // See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
    // All other rights reserved.

    Type.registerNamespace('AjaxControlToolkit');   //定义命名空间

    //在 ASP.NET AJAX 中定义类,您需要将其构造函数赋给变量(注意,构造函数如何调用基础函数):

    AjaxControlToolkit.ConfirmButtonBehavior = function(element) {
    /// <summary>
    /// The ConfirmButtonBehavior extends buttons by providing a confirmation dialog when clicked
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" domElement="true">
    /// Button the behavior is associated with
    /// </param>

    //调用初始化基类,类似于C++/C# base关键字
    AjaxControlToolkit.ConfirmButtonBehavior.initializeBase(this, [element]);

    // Confirm text
    this._ConfirmTextValue = null;
    // Click handler for the target control
    this._clickHandler = null;
    }

    //通过prototype定义成员()
    AjaxControlToolkit.ConfirmButtonBehavior.prototype = {

    //初始化资源
    initialize : function() {
    /// <summary>
    /// Initialize the behavior
    /// </summary>
    AjaxControlToolkit.ConfirmButtonBehavior.callBaseMethod(this, 'initialize');
    // Attach the handler
    this._clickHandler = Function.createDelegate(this, this._onClick);
    $addHandler(this.get_element(), "click", this._clickHandler);
    },

    //释放资源

    dispose : function() {
    /// <summary>
    /// Dispose the behavior
    /// </summary>

    // Detach event handlers
    if (this._clickHandler) {
    $removeHandler(this.get_element(), "click", this._clickHandler);
    this._clickHandler = null;
    }

    AjaxControlToolkit.ConfirmButtonBehavior.callBaseMethod(this, 'dispose');
    },

    _onClick : function(e) {
    /// <summary>
    /// Button's click handler to display the confirmation dialog
    /// </summary>
    /// <param name="e" type="Sys.UI.DomEvent">
    /// Event info
    /// </param>

    if (this.get_element() && !this.get_element().disabled) {
    // Display confirm dialog and return result to allow cancellation
    if (!window.confirm(this._ConfirmTextValue)) {
    e.preventDefault();
    return false;
    }
    }
    },

    get_ConfirmText : function() {
    /// <value type="String">
    /// The text to show when you want to confirm the click. (Note: HTML entities can be used here (ex: "&#10;" for new-line))
    /// </value>
    return this._ConfirmTextValue;
    },
    set_ConfirmText : function(value) {
    if (this._ConfirmTextValue != value) {
    this._ConfirmTextValue = value;
    this.raisePropertyChanged('ConfirmText');
    }
    }
    }

    //最终注册类:
    AjaxControlToolkit.ConfirmButtonBehavior.registerClass('AjaxControlToolkit.ConfirmButtonBehavior', AjaxControlToolkit.BehaviorBase);

    参考:[ASP.NET AJAX]类似.NET框架的JavaScript扩展

    欢迎大家扫描下面二维码成为我的客户,为你服务和上云

  • 相关阅读:
    IOC(inverse of Control)控制反转(依赖注入)思想
    学习Ajax技术总结
    设计差异引发WebServices 安全性问题
    XML与Webservices相关的安全问题概述
    XML与Webservices相关的安全问题概述
    设计差异引发WebServices 安全性问题
    Webservice测试方案(目录及下载链接)
    XML与Webservices相关的安全问题概述
    设计差异引发WebServices 安全性问题
    构建安全的 Web Services
  • 原文地址:https://www.cnblogs.com/shanyou/p/736361.html
Copyright © 2011-2022 走看看