2

Dojoのストアに接続できるDataGridよりも単純なリストタイプはありますか?

ストアのデータ抽象化が必要ですが、ヘッダーとセル構造は必要ありません。データラインの表現をより柔軟にしたいと思います。おそらく、各ラインが関数を呼び出してレイアウトされます...

4

1 に答える 1

2

あなたは本当に良い質問をします。私は実際、「DataGridを最初のオプションにすべきではない」というドラフト形式のブログ投稿を持っています。

ストアを使用して、ストアからのデータを繰り返し形式で表示するために、いくつかのことを行いました。

dom-constructとforeachを使用して手動でhtmlテーブルを作成しました。

var table = dojo.create('table', {}, parentNode);
var tbody = dojo.create('tbody', {}, table); // a version of IE needs this or it won't render the table

store.fetch({  // this is a dojo.data.ItemFileReadStore, but you cana dapt to the dojo.Store API
    query: {},
    onComplete: function(itms) {
        dojo.forEach(itms, function(itm, idx) {
            var tr = dojo.create('tr', {}, tbody);
            // use idx to set odd/even css class
            // create tds and the data that goes in them
        });
    }
});

また、リピーターを作成しました。ここでは、文字列形式のhtmlテンプレートがあり、それを使用して各行のhtmlをインスタンス化します。

var htmlTemplate = '<div>${name}</div>'; // assumes name is in the data item
store.fetch({  // this is a dojo.data.ItemFileReadStore, but you cana dapt to the dojo.Store API
    query: {},
    onComplete: function(itms) {
        dojo.forEach(itms, function(itm, idx) {
            var expandedHtml = dojo.replace(htmlTemplate, itm);
            // use dojo.place to put the html where you want it
        });
    }
});

アイテムごとにインスタンス化するウィジェットを作成することもできます。

于 2012-04-07T15:44:22.520 に答える