不好意思今天才回你,因为前两天有一个重要的考试,先多谢谢关注!
(1)ASP.Net AJAX的客户端框架一系列的对DOM对象的维护和操作,基本内容实现就在DomElement类中,其实DomElement类基本是独立的,就像组件样,他主要是可以放开发者无须编写复杂的组件可以容易的与DOM元素交互.
DomElement类方法如下:
Sys.UI.DomElement.getElementByID(id,element)
在element元素的子节点中通过id属性找到并创建相应Sys.UI.DomElement类,如不指定element参数,则默认从文档的根接点document开始搜索.
Sys.UI.DomElement.addCssClass(element,className)
为element元素添加名为className的CSS Class
Sys.UI.DomElement.removeCssClass(element,className)
判断 element元素中是否已经应用了名为className的CSS Class
Sys.UI.DomElement.toggleCssClass(element,className)
在element元素已经应用辽国名为className的CSS Class,则竟其移除,否则添加.
Sys.UI.DomElment.getBounds(element)
获取element元素的边界信息,返回值被封装成一个JSON对象,包括水平位置(X),垂直位置(Y),高度(height)和宽度(width)
Sys.UI.DomElment.getLocation(element)
获取element元素的位置信息,返回值被封装成一个JSON对象包括水平位置(X),垂直位置(Y)
Sys.UI.DomElment.setLocation(element,x,y)
设定element元素的位置信息,X表示水平位置,y表示垂直位置.
(2)Sys.UI.DomElment类及$get()
本类的具体实现code:
2
3
4
5
6
而$get()是code如下:
这样就是实现将document.getElementById()转成$get().接着再深入看一下,上面的代码是通过ScriptMananger引用到客户端浏览器上,让浏览器执行,所以在前端的.aspx网页上的时候,你查看代码时.你看不到js代码.(当然我想可能是通过render到客户端的).
$get()是Sys.UI.DomElement.getElementByID它的简写而Sys.UI.DomElement.getElementByID是对document.getElementById()的增强,值得注意的$get('是在client的id'),和这个在Sys.UI.Behavior类中的get_element()方法有不同的点,get_element()是可以用在只要使用ScriptMananger的页面上的任意Id,如果想在服务端怎样使用$get();只用向客户端注册脚本的方式.
可以看出是直接返回的您传入的页面上对象的参数.
(3)关于Script#中的$()
而在Script#中是怎样实现的拉,这样实现的
所以可以看出是得到Client端的标签的ID,
在Script#中它还支持Asp.net Ajax Runtime,主要支持的Atlas,而Atlas上面使用的还原来的那种方式$(),而C#是不支持的,所以通过写C#转换JavaScript时,这个特性就受到限制.所以其他Script#限制瞒多的,但我相信它用C#写client逻辑这个特性还是很吸引人的.