当前位置 : 主页 > 网页制作 > Dojo >

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

来源:互联网 收集:自由互联 发布时间:2021-06-15
以下是某年某月某日某群的聊天记录: grid的分页,还是独立做一个分页 【传说】JOYPB(529058939)18:24:29 enhancedGrid的分页 【传说】JOYPB(529058939)18:25:11 左下角的描述信息,也就是第几页第几

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


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

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