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完毕!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In Artikel werden Best Practices zur Gewährleistung der HTML5-Cross-Browser-Kompatibilität erörtert und sich auf die Erkennung von Merkmalen, die progressive Verbesserung und die Testmethoden konzentriert.

Der Artikel erörtert den HTML & lt; Progress & gt; Element, Absicht, Styling und Unterschiede vom & lt; Meter & gt; Element. Das Hauptaugenmerk liegt auf der Verwendung & lt; Fortschritt & gt; Für Aufgabenabschluss und & lt; Meter & gt; für stati

Der Artikel erörtert den HTML & lt; Datalist & gt; Element, das die Formulare verbessert, indem automatische Vorschläge bereitgestellt, die Benutzererfahrung verbessert und Fehler reduziert werden.Character Count: 159

In dem Artikel werden unter Verwendung von HTML5 -Formularvalidierungsattributen wie Erforderlich, Muster, Min, MAX und Längengrenzen erörtert, um die Benutzereingabe direkt im Browser zu validieren.

Der Artikel erörtert das HTML & lt; Meter & gt; Element, verwendet zur Anzeige von Skalar- oder Bruchwerten innerhalb eines Bereichs und seine gemeinsamen Anwendungen in der Webentwicklung. Es differenziert & lt; Meter & gt; von & lt; Fortschritt & gt; und Ex

In dem Artikel wird das Ansichtsfenster -Meta -Tag erörtert, das für das reaktionsschnelle Webdesign auf mobilen Geräten unerlässlich ist. Es wird erläutert, wie die ordnungsgemäße Verwendung eine optimale Skalierung von Inhalten und Benutzerinteraktion gewährleistet, während Missbrauch zu Design- und Zugänglichkeitsproblemen führen kann.

Der Artikel erörtert das & lt; iframe & gt; Der Zweck von Tag, externe Inhalte in Webseiten, seine gemeinsamen Verwendungen, Sicherheitsrisiken und Alternativen wie Objekt -Tags und APIs einzubetten.

HTML ist für Anfänger geeignet, da es einfach und leicht zu lernen ist und schnell Ergebnisse sehen kann. 1) Die Lernkurve von HTML ist glatt und leicht zu beginnen. 2) Beherrschen Sie einfach die grundlegenden Tags, um Webseiten zu erstellen. 3) hohe Flexibilität und kann in Kombination mit CSS und JavaScript verwendet werden. 4) Reiche Lernressourcen und moderne Tools unterstützen den Lernprozess.
