0

パネルの中にグリッドがあります。最初に、アプリケーションがロードされたときにグリッドをパネルにレンダリングし、特定のユーザー操作(たとえば、grid:2をクリック)で、hide()を使用してパネル内のグリッドを非表示にします。グリッドが非表示になっている場合、panel.update(html)を使用してパネルにメッセージを表示します。ここでも、特定のユーザー操作(たとえば、grid:3をクリック)について、パネル内にグリッドを表示する必要があります。grid.show()、grid.setvisible()、panel.doLayout()を試してみましたが、うまくいきません。以下はサンプルコードです。

    if (condition1){
      panelGrid.setVisible(false);
      panel.update("htmltext");
    } else {
      panel.doLayout();
      panelGrid.setVisible(true);
    }

これはFirefoxで正常に機能します。ただし、IE8では機能せず、「ext-base.jsの不特定のエラー」というエラーメッセージが表示されます。

誰かがこれについて何か考えを持っていますか?

4

2 に答える 2

1

回答ありがとうございます。私は自分で論理を考えました。

panel.update()の代わりにadd()を使用しました。

if (condition1){
  panelGrid.setVisible(false);
  panel.remove('sample', true);
  panel.add(
   {
     id: 'sample'
     html:'htmltext'
   });
} else {
  panel.remove('sample', true);
  panelGrid.setVisible(true);
}
于 2012-07-31T15:52:40.687 に答える
0

を実行するときにパネルのHTMLをオーバーライドするpanel.updateため、グリッドは存在しなくなります。

于 2012-07-31T13:27:52.910 に答える