0

全て、

ユーザーデータを収集するために、複数のサブパネルを含む StackPanel を実装しようとしています。各サブパネル (私は SwapRecordPanels と名付けました) は、Google スプレッドシートの 1 行を表しており、勤務する曜日を交換したい 2 人のデータが含まれています。SwapRecordPanels には削除ボタンが含まれています。削除ボタンをクリックすると、SwapRecordPanel が StackPanel から削除されます。

ただし、StackPanel から要素を削除しようとすると、変更が GUI に登録されないことがわかりました。StackPanel 内の要素を削除できるという概念を実証する試みとして、「Click Me」というタイトルのボタンを追加しました。以下のコードでわかるように、そのハンドラは StackPanel の「LeftPanel」から要素を削除しようとします。ただし、ボタンをクリックすると、「LeftPanel」は変更されません。GUIを更新するために呼び出される何らかのリフレッシュ/再描画メソッドがあるかどうか疑問に思っています。そうでない場合、誰かアドバイスをいただけますか?どんな助けでも大歓迎です。

function myViewer() {
  var myapp = doGet();
  SpreadsheetApp.getActive().show(myapp)
}

function doGet() {
  var myapp = UiApp.createApplication();

  var LeftPanel = myapp.createStackPanel().setId("LeftPanel");
  var LeftScrollPanel = myapp.createScrollPanel(LeftPanel).setPixelSize(410,200)
  myapp.add(LeftScrollPanel)

  var SwapPane1 = SwapRecordPanel(LeftPanel);
  var SwapPane2 = SwapRecordPanel(LeftPanel);
  LeftPanel.add(SwapPane1,"Test 1 Header");
  LeftPanel.add(SwapPane2, "Test 2 Header");

  var myButton = myapp.createButton("Click    Me").addClickHandler(myapp.createServerHandler("ButtonClicker"));
  myapp.add(myButton);

  return myapp;
}

function ButtonClicker()
{
  Logger.log("I was clicked")
  var myapp = UiApp.getActiveApplication();
  var LeftPanel = myapp.getElementById("LeftPanel");
  LeftPanel.remove(myapp.getElementById("panel1"));
}
4

1 に答える 1