All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
GDI+ 绘制折线图分析网站流量
用PHP连接Oracle数据库_php资料_编程技术
事半功倍之javascript(4)_JavaScript技术_编程技术
PHP技巧:正确理解PHP程序编译时的错误信息_php资料_编程技术
ASP.NET2.0中的AccessDataSource控件_[Asp.Net教程]
用php简单实现Search,Engine,Friendly的URL_php资料_编程技术
asp.net,2.0中gridview里嵌套dropdownlist_[Asp.Net教程]
新增功能,(SQL,Server,2008,R2)_mssql学习_编程技术
PHP使用者注意:PHP4.3.10以下版本出现严重漏洞_php资料_编程技术
ASP.NET技巧:获取数据行数据信息_[Asp.Net教程]
Reading number is top 10 pictures
The little girl with long hair2
奇趣的世界记录1
云南大理的美女
Embarrassing things comic collection1
NeedWallpaper2
人美胸美腿更美4
Perfect small Laurie2
The money of more than 100 countries and regions13
中国女孩大胆自拍,显露完美身材
中国处女图鉴2
Download software ranking
Sora aoi - one of more PK
SP4 for SQL2000
Eclipse 4.2.2 For Win32
仙剑奇侠传98硬盘WINXP版
Sora aoi 120 minutes
双旗镇刀客A
Boxer's Top ten classic battle4
Kung.Fu.Panda.2
致我们终将逝去的青春
dreamweaver8中文版
归海一刀 published in(发表于) 2014/1/30 0:51:38 Edit(编辑)
Asp.Net,Ajax,学习笔记12,基于AJAX,Library扩展客户端组件_[Asp.Net教程]

Asp.Net,Ajax,学习笔记12,基于AJAX,Library扩展客户端组件_[Asp.Net教程]

Asp.Net Ajax 学习笔记12 基于AJAX Library扩展客户端组件_[Asp.Net教程]


























1、C#中定义事件的方法




第一种:逐个定义事件 public class WorkEventArgs : EventArgs
{
/**//* */
}




public class SomeClass
{
public event EventHandler Work;
protected void OnWork(WorkEventArgs e)
{
if (Work != null) Work(this, e);
}
}这是逐个定义事件的方式,其中EventHandler是也委托的范型,用来规定事件第二个参数的类型。这种方式在事件非常多的时候,会为每个事件生成一个委托对象。在事件没有使用到的情况下,会浪费内存。
第二种:事件集合的方式 public class SomeClass
{
static readonly object workEventKey = new object();
protected EventHandlerList eventDelegates = new EventHandlerList();
public event EventHandler Work
{
add
{
this.eventDelegates.AddHandler(workEventKey, value);
}
remove
{
this.eventDelegates.RemoveHandler(workEventKey, value);
}
}




protected void OnWork(WorkEventArgs e)
{
EventHandler workEventDelegates =
(EventHandler)this.eventDelegates[workEventKey];
if (workEventDelegates != null) workEventDelegates(this, e);
}
//…
}在这个示例里用实例化了一个委托的列表,用workEventKey 作为事件的标识符。使用这种方法,使用一个事件才会在委托列表中加入一个委托,这样可以有效的节约内存。如果要添加一个事件,那么必须添加一个object对象作为标识符
2、Asp.Net Ajax里面的事件




Asp.Net Ajax事件的定义与第二种差不多




定义委托List Demo.MyClass = function()
{
this._events = new Sys.EventHandlerList();
// …
}使用Sys.EnentHandlerList来实例化委托列表。
定义事件的add和remove Demo.MyClass.prototype=
{
add_myEvent : function(handler)
{
this._events.addHandler("myEvent", handler);
},
remove_myEvent : function(handler)
{
this._events.removeHandler("myEvent", handler);
},
//
} 这里用字符串代替object作为委托的key
添加触发事件的方法 Demo.MyClass.prototype =
{
raiseMyEvent : function(e)
{
var handler = this._events.getHandler("myEvent");
if (handler)
{
handler(this, e);
}
}
}通过使用委托(事件)列表的getHandler方法得到这个事件的委托,然后抛出这个事件。注意,要抛出空参数可以使用Sys.EventArgs.Empty来表示e为一个空参数
3、继承时需要注意的问题




在Asp.Net Ajax中toLocaleString, valueOf, hasOwnProperty等方法都无法继承。通过重写Type的resolveInheritance方法解决





不要在基类的构造函数中写toString方法




Demo.Parent = function()
{
// Incorrect
this.toString = function()
{
return Object.getTypeName(this);
}
}
这样做为什么不行,因为你在派生类定义一个toString方法是无法覆盖基类的toString的方法的,这违背了继承的原则。




3、修改已有类型




添加某个类的成员直接可以在他的prototype上添加方法
修改某个成员需要先备份修改等方法,然后定义同名方法 var p = Demo.Employee.prototype;
p._old_calculateSalary = p._calculateSalary;
p._calculateSalary = function()
{
return this._old_calculateSalary() + (this.get_year() - 1) * 2000;
}这样做的缺点是修改基类的方法无法影响子类的方法。














































添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.