PDA

View Full Version : グリッドのソートの矢印について



ak_ext
7 Jun 2009, 9:09 PM
http://extjs.com/deploy/dev/examples/grid/array-grid.html

などのグリッドサンプルでヘッダ列をクリックするとソートされると思うのですが、
この後、ヘッダーグリッド内に出る▼▲を
意図的に初期表示の状態(▲が出ない)に戻す事はできるのでしょうか。

処理としては
ソートする→▲が出る
→ある処理をすると初期検索が走る→▲が消えるを実現したいです。
通信してデータを取ってきても、
グリッド内は変わるのですが、ヘッダーの▲の同期が取れません。

ak_ext
8 Jun 2009, 3:04 AM
を使って▲のない状態に戻そうと思ったのですが、
セットするのがASCかDESCしかないみたいで、
どこでこの▲表示を制御しているか分かりません。

ak_ext
9 Jun 2009, 1:40 AM
を作ってみました。
任意のカラムでソートをした後
テストボタンを押下して、ソートを初期状態(▲なし)に戻したいです。

ソートを制御してるのはsort-asc,sort-descなので
これをgetViewで取り除こうとしたけど、できませんでした。
ヘッダーをキャッチできればできそうです。

ak_ext
10 Jun 2009, 12:26 AM
英語のサイトで

var el = this.firstGrid.getGridEl();
el = el.dom.firstChild;
var cs = el.childNodes;
this.el = new E(el);
this.mainWrap = new E(cs[1]);
this.mainHd = new E(this.mainWrap.dom.firstChild);

var hds = this.mainHd.select('td.x-grid3-cell').removeClass(sc);

↑ソートクラスじゃないのですが、ソートも同じ原理で外すような気がしました。
でも何をしてるか良く分からないです。

多分グリッドの特定の列のヘッダーを取得、
そのグリッドの中のtd.sort-asc や descをselectして
最後にそいつをremoveClassしてあげる?

グリッドヘッダーのソートの▲を消すのが、
こんなに大変だとは思わなかったです。

ak_ext
10 Jun 2009, 3:14 AM
できました。サンプルを上げます。
ただソートの画像は初期化できても、
内部でソートの状態をもってるみたいで、
初期化後、同じ列をソートしようとすると、
降順になってしまいます。

初期表示された後は、すべての列が
最初昇順にソートされるので、
直せれば直したいですが、
もっと内部で処理してそうなので、
ここはしょうがないかもですね・・