最近、アプリケーション・インターフェースのプログラミングにDojoを使用し始めました。Dojoを初めて使用しました。最初の割り当てでは、データベースとファイル・アイコンからのファイル・リストを示す行を持つカスタム表ウィジェットを作成します。ウィジェットはデータグリッドに似ていますが、データグリッドがネットワークに重くなることがあるため、リストのような表を使用したいと考えています。本当に感謝していただきありがとうございます。dojoでカスタム表ウィジェットを作成する方法は?
0
A
答えて
0
グリッドと同様に、カスタムウィジェットをデータストアでインスタンス化するとします。そのアイテムのリストを持っており、以下は
<script>
dojo.declare("myTable", [dijit._Templated], {
// define which template to instantiate on your domNode (in this case, table becomes the domNode of your widget)
templateString: '<table><thead dojo-attach-point="headNode"></thead><tbody dojo-attach-point="bodyNode"></tbody></table>',
constructor: function(args) {
args = args || {};
if(!args.store) console.warn("No store supplied");
this.store = args.store
// Note; there are a number of methods to achieve this hook,
// depending on which type of datastore is in use
this.store.fetch({ onComplete: dojo.hitch(this, "_onload") });
},
// function to be called whenever the store has fetched an item set
_onload: function(items) {
var _t = this, store = _t.store, head = _t.headNode, body = _t.bodyNode;
var headIsFilled = false;
// 'haxed' reset of current setup, simply resetting innerhtml
_t.rowIdentifiers = [];
_t.rows = [];
head.innerHTML = "<tr></tr>";
head = head.firstChild;
body.innerHTML = "";
dojo.forEach(items, function(item) {
// generic way of simply showing all of contents available in store
// prefereably, set this structure in an argument while constructing and
// fill head with, say _t.layout
if(!headIsFilled) {
// loops the first item, making sure not to take in any internal references, should check for item
for(var i in item) if(item.hasOwnProperty(i) && i != "_S" && i != "_RI") {
dojo.place("<th>"+i+"</th>");
_t.rowIdentifiers.push(i);
}
headIsFilled = true; // only once
}
var tr = dojo.create("tr", null, body);
var row = { el : tr }
var cell;
dojo.forEach(_t.rowIdentifiers, function(key) {
cell = dojo.create("td", {innerHTML : store.getValue(item, key)}, tr);
row[key] = cell.innerHTML; // the toString value of item
});
_t.rows.push(row);
});
}
});
</script>
コードが評価されていないが、一般的なアイデアを与える必要があり、あなたのウィジェットに行を作成しながら、それらを処理します:どのタイプ(itemfilereadstore例)に応じて、お店、ウィジェットを起動する方法。
コードにはいくつか注意してください。 templateString
は、この例では唯一のattachpointsが_Templatedのミックスインが
がスターターチュートリアルとしてとは、以下を参照してくださいそのdomNodesにウィジェット内の参照を作成してもらってくださいするために使用され、基本的なHTMLのレイアウトはどうあるべきかで、「魔法」の規則の数を持っています一般的な基準:
http://dojotoolkit.org/documentation/tutorials/1.6/understanding_widget/
http://dojotoolkit.org/documentation/tutorials/1.6/templated/
関連する問題
- 1. DOJOでウィジェットをレンダリングする方法
- 2. dojo:ウィジェットをクローンする方法?
- 3. dojoでイメージスライダーを作成する方法は?
- 4. Dojoでプライベート属性/メソッドを作成する方法は?
- 5. Swing:マウスで動くウィジェットのようなカスタムJToolTipを作成する方法
- 6. tooltipdialogの親ウィジェットを特定する方法は? - (Dojo 1.10+)
- 7. カスタムProgressBarウィジェットでTextSwitcherを作成するには
- 8. WPFカスタムDataGridCellでカスタムDataGridを作成する方法は?
- 9. フラッターのカスタム時計ウィジェットを作成
- 10. インターフェイスビルダで作成したカスタムuialertviewを表示する方法
- 11. DojoとJQueryのプログラムによるウィジェットの作成
- 12. プログラムでDojo dijitフォームを作成する方法
- 13. jsウィジェット/ポップアップ/コンテンツロッカーの作成方法は?
- 14. イオンアプリで半分の評価ウィジェットを作成する方法は?
- 15. jupyterノートブックでスクロール可能なウィジェットを作成する方法は?
- 16. 公開カスタムWordPressウィジェットを作成するには
- 17. ウィジェットをカスタム方法で配置する方法
- 18. カスタムAuthorizeAttributeは、私は、カスタムAuthorizeAttributeを作成する方法
- 19. アポストロフィCMSでカスタム画像ウィジェットを作成する
- 20. Dojo Data GridでFilteringSelectウィジェットのデフォルト値を設定する方法は?
- 21. カスタムQtウィジェットを作成するか、既存のウィジェットを実装しますか?
- 22. ContentPaneを展開しないオプションのカスタムDojo Accordion Containerウィジェット
- 23. cocos2d-xでカスタム作成機能を作成する方法
- 24. ウィジェット・ロード・イベントのDojo
- 25. Dojoウィジェットのデフォルト値
- 26. dojo dgrid内のウィジェット
- 27. Dojoウィジェット・インライン編集
- 28. カスタムUIDatePickerコントロールを作成する方法
- 29. カスタムIDを作成する方法
- 30. カスタムSwingコンポーネントを作成する方法
助けていただきありがとうございますが、データは、JSONデータ形式を介してテーブルの行に渡されるべきであり、各行の最初の列は、チェックボックス及び第二のなければなりません列iの文字列と第3列ファイルのイメージアイコン。 – Ousman
今、コンパイラとセルレンダラー/フォーマットの機能を持つグリッドコンポーネントがあるのです。なぜ、jsonデータをストアにラップするのが問題なのですか?自分の 'xhr.load(response){ eval(レスポンス)構造内の各項目に対して関数を構築する。 JSONがどのように見えるかのサンプルを提供し、HTMLスニペットで表示する方法を教えてください – mschr