时间:2021-05-25
作者的blog:http://blog.csdn.net/oyiboy/
我之所以还是要宣扬用MVC来开发ASP,只是想让面向过程的思考方式变成面向对象的思考方式,这个对于任何一种语言的开发员来说都是有好处的。
MVC是个标准模型,ASP要实现似乎真的是很困难,但是标准是标准,运用是运用,既然ASP要实现这个模型很难,那可以尝试着将MVC模型变形成适合自己的模型。
“不管白猫黑猫能逮到耗子的就是好猫。”而对于我们开发者来说,不管是什么模型,能正确的指引我们的思路,完美完成项目的模型就是好模型。毕竟用户最终用是我们的程序而不是我们的模型。
这段时间由于接触到MVC,也知道了Class的运用方式,遭遇到了事件的设计。
其实具体的事件设计方式我也不是很明白,在QQ里newskyline跟我说了,ASP没办法作Class的事件,
只能模拟。而我呢。算是为达目的不则手段(写程序而以)的,认为模拟也好,非模拟也行,只要达到我想要的效果就是好东西。
模拟事件的方式有两种:
第一种:借用了execute/eval,用一个属性收取函数名的字符,然后使用execute/eval来运行函数。
如:
obj.OnDataUpdateStart="CheckData"
其构造为:
publicpropertyletOnDataUpdateStart(byvalA_strValue)
''在此省略了对A_strValue的一些严谨的验证代码。
p_strOnDataUpdateStart=A_strValue
endproperty
事件是触发为:
publicsubDataUpdate()
''...忽略过程...
execute(p_strOnDataUpdateStart&"(参数变量一,参数变量二)")
''...忽略过程...
endsub
稍微提一下execute和eval的不同点。
同样的“x=y”。execute("x=y")的结果是将y值赋给x,而eval("x=y")则会返回一个Boolean值,表示x与y的测试结果,如x等于y则返回true,反之返回false。
第二种:借用函数指针GetRef,在vbs手册的解释上来看就是绑定事件专用的函数。具体解释如下:
“返回一个指向一过程的引用,此过程可绑定某事件。”
具体运用例子,如:
obj.OnDataUpdateStart="CheckData"
其构造则改为:
publicOnDataUpdateStart ''其实可以使用get/let模式,想偷懒了,所以直接声明一个公开变量来传递了。
事件触发则改为:
publicsubDataUpdate()
''...忽略过程...
setme.OnDataUpdateStart=GetRef(OnDataUpdateStart)
me.OnDataUpdateStart("参数变量一","参数变量二")
''...忽略过程...
endsub
以上两种方式可以实现事件绑定,但是,从解释上来说,我比较推崇第二种,相对于execute/eval来说更为严谨一些。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了ASP.NET中实现定制自己的委托和事件参数类的方法,对于学习ASP.NET有很好的参考借鉴价值。具体方法如下:一般在实际开发中,对于事件不需要传
适合电子商务的岗位分为技术类和营销类,技术类需要掌握的知识和能从事的岗位有网站设计与开发平面设计DIV+CSS网页制作三剑客FLASH制作ASP/PHP/JSP
很多DOM对象都有原生的事件支持,向div就有click、mouseover等事件,事件机制可以为类的设计带来很大的灵活性,相信.net程序员深有体会。随着we
在asp.net引入事件驱动之后,在一个页面上很容易解决多个按钮触发不同事件的问题,避免了在asp中需要多个form或者通过js脚本来控制的麻烦。asp.net
ASP.NET提供了卓越的事件驱动编程模型,让开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,使用传统的ASP里,我们可以通过使用POS