これらの操作が行われたときに自動的に適用される並べ替え機能を設定できる場所に、カスタム ウィジェットを追加および削除できるグラフィカル コンテナーが必要です。
Dojo には、私が見逃した適切なオブジェクトが既にありますか? それとも、問題について正しく考えていないのでしょうか。
そうでない場合、最小限の作業カスタム コンテナー ウィジェットの例などはありますか?
これらの操作が行われたときに自動的に適用される並べ替え機能を設定できる場所に、カスタム ウィジェットを追加および削除できるグラフィカル コンテナーが必要です。
Dojo には、私が見逃した適切なオブジェクトが既にありますか? それとも、問題について正しく考えていないのでしょうか。
そうでない場合、最小限の作業カスタム コンテナー ウィジェットの例などはありますか?
SitePen のdgridを使用してから、Editor タイプの列を持つ List ウィジェットを定義します。カスタム ウィジェットをエディターのパラメーターに送信します。dgrid の List ウィジェットは、データに基づいたグリッドであるかのように並べ替えることができ、Editor 列には、List のアイテムのコンテンツの一部として必要なものを表示できる必要があります。
何か必要があれば、私がそばにいます。幸運、
本当にあるとは思わないでください - 標準コンポーネントの並べ替え機能は、コンテナが任意のウィジェット タイプを含むことができる場合、どのパラメータを使用して順序を重み付けする必要があるかをどのように知るのでしょうか?
レイアウト ウィジェット拡張機能を使用するのが最善の選択肢です。このプロトタイプに従って、それぞれに子を追加する機能があります。
addChild(/*Object*/ dijit, /*Integer?*/ insertIndex)
はdijit.layout.StackContainer
良い出発点であり、dijit._Container
(and dijit.layout._LayoutWidget
) から継承しています。したがって、オーバーライドの拡張機能をいつ呼び出すかを選択します。
dojo.declare("my.Container", [dijit._Container], {
getSortOrder : function(newDijit) {
var newIndex = -1; ??
// something to work with
var currentChildren = this.getChildren();
var currentDescendants = this.getDescendants();
return newIndex;
},
addChild: function(dijit, index) {
// figure out index
arguments[1] = this.getSortOrder(dijit);
this.inherited(arguments);
}
});
ただし、layoutwidgets には、順序の選択だけでなく、bordercontainer の region パラメータと同様の配置も含まれていることに注意してください。