dojo 方法重载:以enhancedgrid定制description为例

前端之家收集整理的这篇文章主要介绍了dojo 方法重载:以enhancedgrid定制description为例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

以下是某年某月某日某群的聊天记录:


@H_711_404@
grid的分页,还是独立做一个分页
【传说】JOYPB(529058939)18:24:29
enhancedGrid的分页
【传说】JOYPB(529058939)18:25:11
左下角的描述信息,也就是第几页第几项的信息,怎么修改比较好呢
【话唠】RIAStudio(228456440)18:26:29
显示css还是什么
【传说】JOYPB(529058939)18:26:50
等下,我截个图
【话唠】RIAStudio(228456440)18:26:52
css的话,直接加载一个自己的css文件
【传说】JOYPB(529058939)18:27:11
不是css,是里面的模板内容
【传说】JOYPB(529058939)18:28:02
【话唠】RIAStudio(228456440)18:28:17
没用过
【传说】JOYPB(529058939)18:28:24
dojox\grid\enhanced\nls\zh\Pagination.js这个文件下的
【话唠】RIAStudio(228456440)18:28:44
这个是一个字符串模板
【传说】JOYPB(529058939)18:28:48
你要告诉我,你没用过dijit么。。。
【话唠】RIAStudio(228456440)18:28:53
有4个参数
【传说】JOYPB(529058939)18:28:59
你全是自己写的。。。
【话唠】RIAStudio(228456440)18:29:05
这是它自己的,不是通用的
【传说】JOYPB(529058939)18:29:32
修改
【话唠】RIAStudio(228456440)18:29:52
这4个参数分表代表的是什么,可以搜索descTemplate找一下在哪里匹配的
【话唠】RIAStudio(228456440)18:30:00
肯定可以改
【话唠】RIAStudio(228456440)18:30:22
不过要通过重载来修改,最好不要直接改原控件
【传说】JOYPB(529058939)18:30:45
【传说】JOYPB(529058939)18:31:07
enhancedGrid的pagination插件里面有nls
【话唠】RIAStudio(228456440)18:31:23
nls是多国语言,跟这个没关系
【传说】JOYPB(529058939)18:31:31
是啊,我也不想修改他的源文件
【话唠】RIAStudio(228456440)18:32:03
等下,帮你找一下
【传说】JOYPB(529058939)18:32:07
【传说】JOYPB(529058939)18:32:24
这是它里面的调用
【话唠】RIAStudio(228456440)18:36:38
dojox\grid\enhanced\nls\zh\Pagination.js这个文件的399行

_updateDescription:function(){
//summary:
// Updatesizeinformation.
vars=this.plugin.forcePageStoreLayer,
maxSize=this.plugin._maxSize,
nls=this.plugin._nls,
getItemTitle=function(){
returnmaxSize<=0||maxSize==1?nls[5]:nls[4];
};
if(this.description&&this.descriptionDiv){
this.descriptionDiv.innerHTML=maxSize>0?string.substitute(nls[0],[getItemTitle(),maxSize,s.startIdx+1,s.endIdx+1]):"0"+getItemTitle();
}
},
重载这个方法
【话唠】RIAStudio(228456440)18:36:53
his.descriptionDiv.innerHTML=maxSize>0?string.substitute(nls[0],s.endIdx+1]):"0"+getItemTitle();
【话唠】RIAStudio(228456440)18:37:04
this.descriptionDiv.innerHTML=maxSize>0?string.substitute(nls[0],s.endIdx+1]):"0"+getItemTitle();
【话唠】RIAStudio(228456440)18:37:08
主要是这个
【话唠】RIAStudio(228456440)18:37:17
string.substitute(nls[0],
【话唠】RIAStudio(228456440)18:37:37
[getItemTitle(),s.endIdx+1]
这就是那4个参数
【传说】JOYPB(529058939)18:39:53
_updateDescription这个貌似文档里面没有
【话唠】RIAStudio(228456440)18:40:07
这是私有方法
【话唠】RIAStudio(228456440)18:40:15
说了,不要看文档,直接看代码
【传说】JOYPB(529058939)18:40:38
嗯,以后看代码
【话唠】RIAStudio(228456440)18:40:39
用extend重载一下就可以了
【传说】JOYPB(529058939)18:41:42
不会extend
【传说】JOYPB(529058939)18:41:57
我刚学会createclass
【话唠】RIAStudio(228456440)18:42:00
【传说】JOYPB(529058939)18:42:06
【话唠】RIAStudio(228456440)18:42:30
等你学会了,就能体会到dojo真的是最好的js框架
【传说】JOYPB(529058939)18:43:28
再教点吧,怎么extend
【话唠】RIAStudio(228456440)18:44:54
require(["dojox\grid\enhanced\nls\zh\Pagination"],function(Pagination){ Pagination.extend({ _updateDescription:function(){ //summary: // Updatesizeinformation. vars=this.plugin.forcePageStoreLayer,maxSize=this.plugin._maxSize,nls=this.plugin._nls,getItemTitle=function(){ returnmaxSize<=0||maxSize==1?nls[5]:nls[4]; }; if(this.description&&this.descriptionDiv){ this.descriptionDiv.innerHTML=maxSize>0?string.substitute(nls[0],s.endIdx+1]):"0"+getItemTitle(); } },}); });

猜你在找的Dojo相关文章