用了FineUI有一段时间了,还是分享下我咋改的吧,没想的那么难,我也是从小白来的。
基础是要懂JQ和EXTJS,主要是要懂JQ和EXTJS能干啥,这里有两个网站
http://www.w3school.com.cn/jquery/traversing_find.asp
http://extjs-doc-cn.github.io/ext4api/
1. 都烂大街了,JQ的肯定要看一遍,核心的是JQ选择器和事件,动画啥的感兴趣的可以都研究,JQ能通过各种样式、ID、属性获得元素,元素包括各种控件还可以找到子控件,只要是HTML上的没有找不到的;事件,用户操作触发的就是事件,各种事件的交织让HTML不死,比如点击,双击,获得焦点,值改变等;除此之外JQ还可以重写HTML,属性,样式,得到了就能改。
2.EXTJS基于JQ,还有API,写了一个一个的类,包成控件,一个新的实例就是一个控件,事件及属性API上都有,都能找到,FineUI也基于EXTJS看起来就方便了。
FineUI官方的实例里没有js,既然基于EXTJS怎么也没上没有JS呢,JS都写在FineUI.dll里了,底层是extjs.js,只要创建实例就可以了,这就要用到asp.net的生命周期的一部分,也很好理解,就是在也没显示之前干了一件事,把页面上写的FineUI控件转成EXTJS再由extjs.js进行渲染显示页面,当然渲染要涉及css和图片,渲染的意思就是变成了HTML代码,DIV加CSS,所以HTML基础肯定要有。
3.FineUI的api其实不想写的,这个不看就不要用了,各种属性事件都不知道干啥的,怎么用,实在看不懂就把属性加上再删除看看有什么区别。
见图:
这个图不是第一次截了,在页面上的没有页面都有,比如我的页面上有个取消按钮:
OK,我看见了什么,Button生成的extjs格式是个啥样的,显示的文字就是text属性,事件写在了handler里,我写的是点击事件showhide那么handler就是点击事件的意思,
这个图不知道是哪的我就白写了;我还看见了所有的控件都在 F.ready(function () {,里写的,我搜了下项目,在grid_checkboxfield_rowcheckall_clientside里找到了F.ready(function () {
分析下,‘<%= btnSelectRows.ClientID %>‘ASP.NET的独特写法,获取控件的ID是HTML的ID,就像上图的Button2,生成的ID是Grid1_Button2,on(‘click‘)是绑定单击事件,那么F(selectRowsID)就是通过ID获得对象,这里就叫对象吧。后面的就是方法,匿名函数,就是没名,我也是蹭课才知道的。一看见$就是JQ用的,选择器,.开头的就是class名 img是标签又一个类名,得到元素后再方法XXX,恩,这个页面不运行也知道干嘛的,checked是选择的意思,这个页是控制grid行里checkbox的选择状态的,都是单词,简单。这说明啥,官方的例子也有用js控制的功能,而且很方便,比后台再回发快多了(有的功能没必要回发)。
今天晚了,明天我会再发一个表单通过js添加元素的例子,大家一起学习。