0

我有以下基本上可以工作的代码,但对话框不在 setPopupPosition 方法所说的位置。我正在 Chrome 上测试这个。

function doGet() {
  var member1 = "Member1";
  var member2 = "Member2";
  var app = UiApp.createApplication();
  var vPanel = app.createVerticalPanel().setId('vPanel').setSpacing(10);
  var hPanel = app.createHorizontalPanel().setId('hPanel').setSpacing(10);
  var msg = app.createHTML("Which member's information do you want to update?");
  var radio1 = app.createRadioButton('rb1').setText(member1);
  var radio2 = app.createRadioButton('rb2').setText(member2);
  var selectBtn = app.createButton("Select").setStyleAttribute("margin-left", "80px").setFocus(true);
  var cnclBtn = app.createButton("Cancel");
  var dlg = app.createDialogBox()
    .setModal(true)
    .setText("Select Member")
    .setTitle("Select Member")
    .setPopupPosition(200, 200);  //PopupPosition does not work
  hPanel.add(selectBtn)
    .add(cnclBtn);
  vPanel.add(msg)
    .add(radio1)
    .add(radio2)
    .add(hPanel);
  dlg.add(vPanel);
  dlg.show();
  app.add(dlg);

  return app;
}
4

1 回答 1

0

似乎setPopupPosition只有在handler函数中创建弹出窗口时才有效....我知道这看起来很奇怪,但是在我编写的几个脚本中,我在处理程序中使用它没有问题,如果我复制/粘贴它就不起作用一个doGet函数……

无论如何,我不知道你将如何在你的真实代码中使用它,但同时你可以用样式属性来定位它......

代码有效

function doGet() {
  var member1 = "Member1";
  var member2 = "Member2";
  var app = UiApp.createApplication();
  var vPanel = app.createVerticalPanel().setId('vPanel').setSpacing(10);
  var hPanel = app.createHorizontalPanel().setId('hPanel').setSpacing(10);
  var msg = app.createHTML("Which member's information do you want to update?");
  var radio1 = app.createRadioButton('rb1').setText(member1);
  var radio2 = app.createRadioButton('rb2').setText(member2);
  var selectBtn = app.createButton("Select").setStyleAttribute("margin-left", "80px").setFocus(true);
  var cnclBtn = app.createButton("Cancel");
  var dlg = app.createDialogBox()
    .setModal(true)
    .setText("Select Member")
    .setTitle("Select Member")
    .setStyleAttributes({'margin-top':200,'margin-left':200})
    .setPopupPosition(200, 200);  //PopupPosition does not work
  hPanel.add(selectBtn)
    .add(cnclBtn);
  vPanel.add(msg)
    .add(radio1)
    .add(radio2)
    .add(hPanel);
  dlg.add(vPanel);
  dlg.show();
  app.add(dlg);

  return app;
}

顺便说一句,您的 radioButtons 不会按原样工作,它们必须具有相同的名称才能按预期运行。关于该主题有一个未解决的问题以及一些解决方法。(问题 506

于 2013-08-05T21:05:15.823 回答