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

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

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


@H_194_404@
grid的分页,还是独立做一个分页
【传说】JOYPB(529058939)18:24:29
enhancedGrid的分页
@H_301_33@
【传说】JOYPB(529058939)18:25:11
左下角的描述信息,也就是第几页第几项的信息,怎么修改比较好呢
@H_301_33@
【话唠】RIAStudio(228456440)18:26:29
显示css还是什么
@H_301_33@
【传说】JOYPB(529058939)18:26:50
等下,我截个图
@H_301_33@
【话唠】RIAStudio(228456440)18:26:52
css的话,直接加载一个自己的css文件
@H_301_33@
【传说】JOYPB(529058939)18:27:11
不是css,是里面的模板内容
@H_301_33@
【传说】JOYPB(529058939)18:28:02
@H_301_33@
【话唠】RIAStudio(228456440)18:28:17
没用过
@H_301_33@
【传说】JOYPB(529058939)18:28:24
dojox\grid\enhanced\nls\zh\Pagination.js这个文件下的
@H_301_33@
【话唠】RIAStudio(228456440)18:28:44
这个是一个字符串模板
@H_301_33@
【传说】JOYPB(529058939)18:28:48
你要告诉我,你没用过dijit么。。。
@H_301_33@
【话唠】RIAStudio(228456440)18:28:53
有4个参数
@H_301_33@
【传说】JOYPB(529058939)18:28:59
你全是自己写的。。。
@H_301_33@
【话唠】RIAStudio(228456440)18:29:05
这是它自己的,不是通用的
@H_301_33@
【传说】JOYPB(529058939)18:29:32
修改
@H_301_33@
【话唠】RIAStudio(228456440)18:29:52
这4个参数分表代表的是什么,可以搜索descTemplate找一下在哪里匹配的
@H_301_33@
【话唠】RIAStudio(228456440)18:30:00
肯定可以改
@H_301_33@
【话唠】RIAStudio(228456440)18:30:22
不过要通过重载来修改,最好不要直接改原控件
@H_301_33@
【传说】JOYPB(529058939)18:30:45
@H_301_33@
【传说】JOYPB(529058939)18:31:07
enhancedGrid的pagination插件里面有nls
@H_301_33@
【话唠】RIAStudio(228456440)18:31:23
nls是多国语言,跟这个没关系
@H_301_33@
【传说】JOYPB(529058939)18:31:31
是啊,我也不想修改他的源文件
@H_301_33@
【话唠】RIAStudio(228456440)18:32:03
等下,帮你找一下
@H_301_33@
【传说】JOYPB(529058939)18:32:07
@H_301_33@
【传说】JOYPB(529058939)18:32:24
这是它里面的调用
@H_301_33@
【话唠】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();
}
},
重载这个方法
@H_301_33@
【话唠】RIAStudio(228456440)18:36:53
his.descriptionDiv.innerHTML=maxSize>0?string.substitute(nls[0],s.endIdx+1]):"0"+getItemTitle();
@H_301_33@
【话唠】RIAStudio(228456440)18:37:04
this.descriptionDiv.innerHTML=maxSize>0?string.substitute(nls[0],s.endIdx+1]):"0"+getItemTitle();
@H_301_33@
【话唠】RIAStudio(228456440)18:37:08
主要是这个
@H_301_33@
【话唠】RIAStudio(228456440)18:37:17
string.substitute(nls[0],
@H_301_33@
【话唠】RIAStudio(228456440)18:37:37
[getItemTitle(),s.endIdx+1]
这就是那4个参数
@H_301_33@
【传说】JOYPB(529058939)18:39:53
_updateDescription这个貌似文档里面没有
@H_301_33@
【话唠】RIAStudio(228456440)18:40:07
这是私有方法
@H_301_33@
【话唠】RIAStudio(228456440)18:40:15
说了,不要看文档,直接看代码
@H_301_33@
【传说】JOYPB(529058939)18:40:38
嗯,以后看代码
@H_301_33@
【话唠】RIAStudio(228456440)18:40:39
用extend重载一下就可以了
@H_301_33@
【传说】JOYPB(529058939)18:41:42
不会extend
@H_301_33@
【传说】JOYPB(529058939)18:41:57
我刚学会createclass
@H_301_33@
【话唠】RIAStudio(228456440)18:42:00
@H_301_33@
【传说】JOYPB(529058939)18:42:06
@H_301_33@
【话唠】RIAStudio(228456440)18:42:30
等你学会了,就能体会到dojo真的是最好的js框架
@H_301_33@
【传说】JOYPB(529058939)18:43:28
再教点吧,怎么extend
@H_301_33@
【话唠】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相关文章