ExtJs 4.2.1Grid行编辑后,页面滚动的解决方案_html/css_WEB-ITnose
前段时间,公司里做个新玩意儿,我们开发组选用ExtJs4.2.1Mvc模式,开发过程中遇到了很多问题(避免不了不专业的需求人员提出各种一拍脑瓜子就决定的需求),经过查看api都一一解决,现在把开发过程中遇到的且已解决的问题,记录下来,供以后查看,也供新接触ExtJs的网友借鉴,描述不到位或有错误的地方,望指正!(注:下文中提到的方法均为ExtJs库中的方法,并非js原生)
因为整个项目都是运用的ExtJs的MVC,所以项目中基本都是js文件(自定义的js文件接近100个,更不用说ExtJs的库了),导致页面加载很慢,性能问题就不提了,这是个老大难问题!
问题1:
关于Grid页面滚动的问题,现在有一个Ext.grid.Panel,在这个grid中有两类数据,一类是可用数据,另一类是禁用数据,可用数据正常显示,禁用的则灰色显示(灰色显示利用grid的viewConfig的getRowClass属性可以做到,seems like this:
getRowClass : function(record,rowIndex,rowParams,store){
return (record.get('youxiao1') == 0 || record.get('isedit') == 0) ? 'row-valid' :' ';
}
);
在这个grid中的两类数据是可以编辑的,当编辑后,为了实现两类数据不混乱显示,于是就用到了store.sort()方法,这个方法会导致grid内容出现滚动,用户不希望在编辑grid时总是滚来滚去,于是叫我们想想办法,于是我用了两天时间来完善这个需求(这过程中,使用了3中方式来实现,第三种方式最完美):
方式一:直接使用focusRow( row, [delay] ),让某一行聚焦;
方式二:获得当前编辑行和grid中第一行的record,然后通过getOffsetsTo()方法计算这两行记录在grid的垂直距离是多少,然后让滚动条滚动到这个距离值的位置,that's all!这个逻辑都在grid的viewConfig配置中实现,然后在编辑行后通过grid.getView().XXX()调用。在viewConfig中添加以下两个方法:
//滚动Grid到指定的Record
scrollToRecord:function(record){
var index = this.ownerCt.getStore().indexOf(record);
this.scrollToRow(index);
},
//滚动Grid到指定的行
scrollToRow:function(rowIndex){
var firstRow = Ext.get(this.getNode(0)); //grid中第一行
var row = Ext.get(this.getNode(rowIndex)); //当前编辑行
var distance = row.getOffsetsTo(firstRow)[1]; //获取垂直距离
//this.scroller.dom.scrollTop = distance; this.scroller在Ext4.x中似乎没有这个属性,它只存在于3.x?
this.getEl().setScrollTop(distance); //设置滚动条
}
方式三:虽然前两种方式也能满足需求,但是不完美,现在说说最完美的解决方案,也是最简单的。
在编辑行之前,先获得当前滚动条的位置:var scrollTop = grid.getView().getEl().getScrollTop(); //排序之前,grid滚动条的scrollTop
在编辑结束之后,再将滚动条滚回最开始的位置:grid.getView().getEl().setScrollTop(scrollTop);
如果我们的Grid中有固定列,就是有些column设置了locked:true这个属性的话,就不能用上面的方法,将会无效,因为有locked的grid的view不能直接获取到,它分为lockedView、normalView,在进行滚动时,要两个view都进行滚动,否则会出现表格错位的现象哦~~,知道这点以后,其他设置就和上面的一直了!
问题1完毕!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'article examine les meilleures pratiques pour assurer la compatibilité des navigateurs de HTML5, en se concentrant sur la détection des fonctionnalités, l'amélioration progressive et les méthodes de test.

L'article traite du HTML & lt; Progress & GT; élément, son but, son style et ses différences par rapport au & lt; mètre & gt; élément. L'objectif principal est de l'utiliser & lt; Progress & gt; pour l'achèvement des tâches et & lt; mètre & gt; pour stati

L'article traite du HTML & lt; Datalist & GT; élément, qui améliore les formulaires en fournissant des suggestions de saisie semi-automatique, en améliorant l'expérience utilisateur et en réduisant les erreurs. COMMANDE COMPRES: 159

L'article discute de l'utilisation des attributs de validation de formulaire HTML5 comme les limites requises, motifs, min, max et longueurs pour valider la saisie de l'utilisateur directement dans le navigateur.

L'article traite du HTML & lt; mètre & gt; élément, utilisé pour afficher des valeurs scalaires ou fractionnaires dans une plage, et ses applications courantes dans le développement Web. Il différencie & lt; mètre & gt; De & lt; Progress & gt; et ex

L'article traite de la balise Meta de la fenêtre, essentielle pour la conception Web réactive sur les appareils mobiles. Il explique comment une utilisation appropriée garantit une mise à l'échelle optimale du contenu et une interaction utilisateur, tandis que la mauvaise utilisation peut entraîner des problèmes de conception et d'accessibilité.

L'article traite du & lt; iframe & gt; L'objectif de Tag dans l'intégration du contenu externe dans les pages Web, ses utilisations courantes, ses risques de sécurité et ses alternatives telles que les balises d'objet et les API.

HTML convient aux débutants car il est simple et facile à apprendre et peut rapidement voir les résultats. 1) La courbe d'apprentissage de HTML est fluide et facile à démarrer. 2) Il suffit de maîtriser les balises de base pour commencer à créer des pages Web. 3) Flexibilité élevée et peut être utilisée en combinaison avec CSS et JavaScript. 4) Les ressources d'apprentissage riches et les outils modernes soutiennent le processus d'apprentissage.
