1

Extjs を使用して新しいタブを動的に追加しています。しかし、ユーザーがページに再アクセスするたびに、ユーザーが作成したすべてのタブを動的にレンダリングする必要があるため、新しく追加されたタブをどこかに (おそらくデータベースに) 保存する方法はありますか? .

タブを作成して、タブの状態を Cookie に保存できます。しかし、新しく作成したタブの状態を保存するには、最初にタブの Html(?) スニペットをどこかに保存する必要があることを知っていますか?

これが私のコードです:

var tab;
var tabIndex = 0;
var tabArray = [];

Ext.application({
  launch: function() {
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider({
      expires: new Date(new Date().getTime() + (1000 * 60 * 60 * 24 * 7))
    }));
    Ext.create('Ext.container.Viewport', {
      layout: 'absolute',
      items: [{
        x: 50,
        y: 50,
        width: 300,
        height: 300,
        xtype: 'tabpanel',
        stateful: true,
        stateId: 'tp1',
        stateEvents: ['tabchange'],
        getState: function() {
          return {
            activeTab: this.items.findIndex('id',this.getActiveTab().id)
          };
        },
        applyState: function(s) {
          this.setActiveTab(s.activeTab);
        },
        items: [{
          id: 'c0',
          title: 'Tab One'
        }, {
          id: 'c1',
          title: 'Tab Two'
        }, {
          id: 'c2',
          title: 'Tab Three'
        }],
        bbar: [
                  {
                      text: 'Add Tab',
                      //region: 'south',
                      xtype: 'button',
                      handler: function () {
                          var tabs = this.up('tabpanel');
                          tab = tabs.add({
                              title: 'Tab ',
                              closable:true,
                              xtype:'panel',
                              width: '100%',
                              height: '100%',
                              items: []                                                 
                          }).show();
                      }
                  }
              ]
        }]
    });
  }
});

ここで非現実的なことをしようとしていますか? または、新しく作成されたタブを保存し、ページの読み込み時に新しく作成されたタブでタブパネル全体をレンダリングすることは可能ですか?

このような大まかな質問をして申し訳ありません:)

ありがとう。

4

1 に答える 1

1

私は過去に同様のことをしました。これが私たちの設計アプローチです。その漠然とした、しかし、私たちはまだそれをやった

動的にタブを作成してアイテム (パネル/入力フィールド) を追加し、これらのアイテムの値を変更すると (テキスト ボックスにテキストを入力する、チェックボックスをチェックするなど)、最後に保存を押すと、すべてのデータが抽出されます。 JSONとして。

保存する必要がある値に基づいてカスタムビルドする必要があります-アイテムのタイプ、値、その子構造など。

次に、ページを再レンダリングする場合は、JSON を使用してページを作成します。このソリューションを構築するのは簡単ではありません。ただし、完了したら、すべてのタブで再利用できますが、動的になります。

そして最後に、それは間違いなく可能です

于 2013-03-27T18:48:27.583 に答える