私はグリッドを持っています。グリッドは、すべてのレコードの前にチェックボックスを使ってレコードを選択できます。今度は、選択に基づいてレコードをソートする必要があります。選択したすべてのレコードを上に配置し、次に選択しないレコードを上に配置する必要があります。GWT(smartgwt)グリッドで選択したレコードをソートします。
これを実現する標準機能はありますか?別の方法として、選択状態をすべてのレコードの属性として保存し、属性に基づいてソートすることを考えました。
列のコードは次のとおりです。
gridRealmDt.setSelectionType(SelectionStyle.SIMPLE);
gridRealmDt.setSelectionAppearance(SelectionAppearance.CHECKBOX);
は私が影響を受けるコードが深く、私たち自身のフレームワーククラスにネストされているように私が使用してコードを記述してみてください。
gridRealmDtは、smartgwt ListGridのサブクラスです。私のダイアログでは、データベースにバインドされたデータソースのインスタンスを作成するグリッドのインスタンスを作成します。ダイアログがロードされると、レコードがデータベースからフェッチされ、その後、別のテーブルのレコードと一致するレコードを選択するdataArrivedHandlerが登録されます。
私は別のフィールドにselection属性を配置し、それを他のソート基準より前にsortigに使用しようとしましたが、これは機能しません。ここで私が使用しているフィールドのコードです。私はcanSortClientOnlyプロパティを設定しない場合は
ListGridField txtSelected = new ListGridField(SELECTED, "");
txtSelected.setHidden(true);
txtSelected.setSortByDisplayField(true);
txtSelected.setCanSortClientOnly(true);
テーブルには、そのフィールドが含まれていないようによって順序は、エラーとなった私のデータベースに送信されるので、私はプロパティを設定します。真と、すべてのデータはまだ、クライアント側ではありません:それはcanSortクライアントのみが指定されているため今、私は次のエラー
ソート指定子配列からフィールドを削除を取得します。
また、私は私のメインのソート基準であるNameフィールドにsortNormilizerを使用しようとしましたが、選択値がレコードに設定される前に正規化が呼び出されます。
record.setAttribute(CARealmDS.SELECTED,selected ? "a" : "b");
選択が変更されたときにノーマライザを呼び出す方法も見つけられません。
現在、私たちはSmart GWT Version 6.0pを使用しています。
は、グリッドとどのようにチェックボックスフィールドを生成しているのサンプルコードを提供してください。また、Smartgwtのバージョンでは、へのアクセス権を持っているAPIを参照するのに便利です。 – carlossierra