yui2 datatable转换至yui3
网上有很多简便的方法,例如说 直接include进来就用啊。 我还是坚持在compat的基础上融合进来;不过说到完美程度,是不及完整理解yui3的类库后再重写。但是第一目标:可用,第二目标:自己看着舒服
首先是Element的依赖,直接吸收。还没有找yui3里面有没有对应的类。如果没有就以yui2的element了。
datasource,也是直接吸收。因为现在还不清楚yui3 的datasource(尚处于beta) 与yui2的差异。(看表现形式是有差异,但核心本质应该不变)
转换最常见的问题还是事务的处理方式;yui2中的事务响应代码,用this 就可以引用到事件的发布者,但yui3不行,解决的方法是在on的时候,相应代码用Y.bind来捆绑this。达到传递this的目的。还有一种思路是在on方法后面跟参数,但是需要修改事件相应代码的接口,抑或是用arguments 来获取,增加了一些负担。不过后者应该在执行期比较高效。(只是传值,并不产生新的实例)
关于id的部分,有一句超级陷阱:
elTh.id = this.getId() + "-th-" + oColumn.getSanitizedKey();
elTh是一个通过appendChild 返回的对象
elTh = elTheadTr.appendChild(document.createElement("th"));
在yui2里面,elTh等于是dom对象了。但是在yui3里面发生了变化。elTh不是一个dom对象,是一个yui3血统的object。(貌似就是Node?),里面用_node 引用了dom对象, 所以在yui3里面,一定要思路清晰的是,每个从yui3标准方法返回的对象,都已经是包装过了(yui2也这么干了,但是在方法 使用上没有那么清晰的界限 【指dom方法属性和原型方法属性】)
所以不能直接赋值id来 改变对方的dom名字了。这就像把别人家的门牌号改了,就期望住在里面的人的名字也修改了一样,是无效的行为。
所以,修改方法很简单:
elTh.set('id',this.getId() + "-th-" + oColumn.getSanitizedKey());
经过如上的处理,终于来到了loading画面
this.showTableMessage(this.get("MSG_LOADING"), DT.CLASS_LOADING);
接下去,还是跟着代码走
8.6 补充说明
经过研究,compat.js 已经对Dom对象获取方式进行了转换,即使用Y.util.Dom.get方法,拿到的对象是一个w3c dom node。并非是一个YUI3 node,因此可以兼容yui2 对node的操作方式(如 obj.innerHTML / obj.style.display 之类),也因此无需可以做转换(如:obj.set('innerHTML','') / obj.setStyle('display','') ; ) 也减少了转换代码量。【针对datatable.js 而言】
yui2 datatable转换至yui3相关推荐
- yui2 datatable转换至yui3 (3)
实际上到上文为止,我们已经得到一个可用的DataTable.用稍微调整过的两个例子: dt_dynamicdata_clean.html dt_formatting_source.html 均可得到正 ...
- DataTable转换成IList
本文转载自http://blog.csdn.net/chentaihan/article/details/6407284 作者:陈太汉 在用C#作开发的时候经常要把DataTable转换成IL ...
- C#将DataTable转换成list的方法
本文实例讲述了C#将DataTable转换成list及数据分页的方法.分享给大家供大家参考.具体如下: /// <summary> /// 酒店评论列表-分页 /// </summa ...
- badatatable转成json_C# DataTable 转换成JSON数据 三种方法
在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List.DataTable转换为Json格式.特别在使用Extjs框架的时候,Ajax异步请求的数 ...
- 简单的反射 把datatable 转换成list对象
/// <summary>/// 把datatable 转换成list对象/// </summary>/// <typeparam name="T"& ...
- Datatable 转换 Dictionary
Datatable 转换 Dictionary DataTable dt = new DataTable();dt.Columns.Add("姓名");dt.Columns.Add ...
- C# DataTable 转换成ListT
运用泛型和反射实现的转换,很给力.代码中掺杂详尽注释,稍微了解一下泛型和反射便可以了解转换的实质.可以直接复制粘贴进行调用哦. public class DtConverToList<T> ...
- list lt t gt java_将DataTable转换成Listlt;Tgt;实现思路及示例代码
前几天在工作中,遇到一个问题:需要将查询出来的DataTable数据源,转换成List的泛型集合(已知T类型).第一反应,我想肯定要用到"泛型"(这不是废话吗?都说了要转换成Lis ...
- C# DataTable转换成DataRow
linq中的cast<T>()及OfType<T>() DataTable dt=...........//获取从数据库中取出的数据(假设只有一条记录)//Cast<T& ...
最新文章
- luanet更名为distri.lua
- SWT 下菜单与子菜单添加的实现(详细图解)
- php图片上传在哪个文件夹,php删除上传的图片及文件夹
- 获取${}中的值? 比如说var a=${date },无法取出date中的值
- 我密集面试了若干位Java后端的候选人,给广大程序员的一点建议
- 运用div css和java_如何将css应用于div模式
- Vista曝致命漏洞 10秒钟可让系统崩溃
- 使用EasyExcel读取excel文件案例
- 如何使用ShoeBox和PhotoShop制作出漂亮的Fnt字体
- 一个完整的html代码是什么,html是什么?一个完整的html代码告诉你(完整实例版)...
- 如何在计算机设置鼠标宏,游戏鼠标宏设置是什么?怎么设置游戏鼠标宏?
- python 技能系统
- 记录解决Win10底部任务栏转圈圈问题的过程(Windows假死)
- 计算机网络英语版答案,计算机网络试卷英语版
- 【raspberrypi】树莓派官方7寸屏入门指南
- 强化学习使用gym时出现错误:ValueError: too many values to unpack (expected 4)
- PyTorch的生态和模型部署
- storm mysql trident_Storm入门(十三)Storm Trident 教程
- 原生JS 表单提交验证器
- [网络广播] SQL Server 主数据管理结合 BizTalk Server SOA 架构实现保险行业 ECIF 解决方案