网上有很多简便的方法,例如说 直接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相关推荐

  1. yui2 datatable转换至yui3 (3)

    实际上到上文为止,我们已经得到一个可用的DataTable.用稍微调整过的两个例子: dt_dynamicdata_clean.html dt_formatting_source.html 均可得到正 ...

  2. DataTable转换成IList

    本文转载自http://blog.csdn.net/chentaihan/article/details/6407284 作者:陈太汉     在用C#作开发的时候经常要把DataTable转换成IL ...

  3. C#将DataTable转换成list的方法

    本文实例讲述了C#将DataTable转换成list及数据分页的方法.分享给大家供大家参考.具体如下: /// <summary> /// 酒店评论列表-分页 /// </summa ...

  4. badatatable转成json_C# DataTable 转换成JSON数据 三种方法

    在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List.DataTable转换为Json格式.特别在使用Extjs框架的时候,Ajax异步请求的数 ...

  5. 简单的反射 把datatable 转换成list对象

    /// <summary>/// 把datatable 转换成list对象/// </summary>/// <typeparam name="T"& ...

  6. Datatable 转换 Dictionary

    Datatable 转换 Dictionary DataTable dt = new DataTable();dt.Columns.Add("姓名");dt.Columns.Add ...

  7. C# DataTable 转换成ListT

    运用泛型和反射实现的转换,很给力.代码中掺杂详尽注释,稍微了解一下泛型和反射便可以了解转换的实质.可以直接复制粘贴进行调用哦. public class DtConverToList<T> ...

  8. list lt t gt java_将DataTable转换成Listlt;Tgt;实现思路及示例代码

    前几天在工作中,遇到一个问题:需要将查询出来的DataTable数据源,转换成List的泛型集合(已知T类型).第一反应,我想肯定要用到"泛型"(这不是废话吗?都说了要转换成Lis ...

  9. C# DataTable转换成DataRow

    linq中的cast<T>()及OfType<T>() DataTable dt=...........//获取从数据库中取出的数据(假设只有一条记录)//Cast<T& ...

最新文章

  1. luanet更名为distri.lua
  2. SWT 下菜单与子菜单添加的实现(详细图解)
  3. php图片上传在哪个文件夹,php删除上传的图片及文件夹
  4. 获取${}中的值? 比如说var a=${date },无法取出date中的值
  5. 我密集面试了若干位Java后端的候选人,给广大程序员的一点建议
  6. 运用div css和java_如何将css应用于div模式
  7. Vista曝致命漏洞 10秒钟可让系统崩溃
  8. 使用EasyExcel读取excel文件案例
  9. 如何使用ShoeBox和PhotoShop制作出漂亮的Fnt字体
  10. 一个完整的html代码是什么,html是什么?一个完整的html代码告诉你(完整实例版)...
  11. 如何在计算机设置鼠标宏,游戏鼠标宏设置是什么?怎么设置游戏鼠标宏?
  12. python 技能系统
  13. 记录解决Win10底部任务栏转圈圈问题的过程(Windows假死)
  14. 计算机网络英语版答案,计算机网络试卷英语版
  15. 【raspberrypi】树莓派官方7寸屏入门指南
  16. 强化学习使用gym时出现错误:ValueError: too many values to unpack (expected 4)
  17. PyTorch的生态和模型部署
  18. storm mysql trident_Storm入门(十三)Storm Trident 教程
  19. 原生JS 表单提交验证器
  20. [网络广播] SQL Server 主数据管理结合 BizTalk Server SOA 架构实现保险行业 ECIF 解决方案

热门文章

  1. 什么软件可以测试sd卡,如何做SD卡测试和SD卡测试工具
  2. DCloud Native.js示例汇总
  3. 公网异地远程访问家中/公司的群晖NAS
  4. Matlab 元胞自动机(模拟传染病传播)
  5. Openssl移植到ARM开发板
  6. 安装多版本Chrome
  7. 【计算机网络13】网络安全
  8. SaaS、PaaS、IaaS、DaaS、BaaS 都是什么
  9. BDB (Berkeley DB)数据库简介(转载)
  10. 新5G网络架构较复杂 设立面对不少挑战