0

我试图在窗口顶部显示几个按钮(这很好),我想在 ScrollPanel 和 AbsolutePanel 中创建数据框,以便它可以放置在任何地方并且用户可以滚动到它(最终会同时在屏幕上显示很多框)。

由于某种原因,AbsolutePanel 中的内容未显示。我确定我只是错过了一些愚蠢的事情,但希望有人可以让我知道我哪里出错了。

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

  var ver = app.createVerticalPanel();
  app.add(ver);

  var hor = app.createHorizontalPanel();
  ver.add(hor);

  var add = app.createButton("Add");
  hor.add(add);

  var rem = app.createButton("Remove");
  hor.add(rem);

  var scr = app.createScrollPanel();
  scr.setWidth("100%");
  scr.setHeight("100%");
  ver.add(scr);

  var abs = app.createAbsolutePanel();
  abs.setWidth("100%");
  abs.setHeight("100%");
  scr.add(abs);

  var b1v = app.createVerticalPanel();
  b1v.setBorderWidth(1);
  abs.add(b1v, 50, 50);

  var b1n = app.createLabel("Text 1");
  b1v.add(b1n);

  var b1b = app.createLabel("Text 2");
  b1v.add(b1b);

  var b1c = app.createLabel("Text 3");
  b1v.add(b1c);

  return app;
}

或者,如果有人知道如何在 GAS UI 中显示分层图表,那也很棒。我尝试在 GAS 中使用 Google Charts 和 HTML 对象,但它删除了所有脚本。

4

2 回答 2

1

谢谢,我还发现,如果我将 VerticalPanel 的高度设置为 100%,将第二行的高度设置为 100%,它的效果会更好……

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

  var ver = app.createVerticalPanel();
  ver.setSize("100%", "100%"); // Changed this
  app.add(ver);

  var hor = app.createHorizontalPanel();
  ver.add(hor);

  var add = app.createButton("Add");
  hor.add(add);

  var rem = app.createButton("Remove");
  hor.add(rem);

  var scr = app.createScrollPanel();
  scr.setWidth("100%");
  scr.setHeight("100%");
  ver.add(scr);
  ver.setCellHeight(scr, "100%"); // And changed this

  var abs = app.createAbsolutePanel();
  abs.setWidth("100%");
  abs.setHeight("100%");
  scr.add(abs);

  var b1v = app.createVerticalPanel();
  b1v.setBorderWidth(1);
  abs.add(b1v, 50, 50);

  var b1n = app.createLabel("Text 1");
  b1v.add(b1n);

  var b1b = app.createLabel("Text 2");
  b1v.add(b1b);

  var b1c = app.createLabel("Text 3");
  b1v.add(b1c);

  return app;
}
于 2013-10-20T19:57:21.990 回答
0

绝对面板的大小定义是问题,如果您以像素为单位定义它,那么一切正常。在 % 中仍然是不可见的。为了调试,我为面板分配了一种颜色,看看会发生什么。

试试这样:

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

  var ver = app.createVerticalPanel();
  app.add(ver);

  var hor = app.createHorizontalPanel();
  ver.add(hor);

  var add = app.createButton("Add");
  hor.add(add);

  var rem = app.createButton("Remove");
  hor.add(rem);

  var scr = app.createScrollPanel();
  ver.add(scr);

  var abs = app.createAbsolutePanel().setStyleAttributes({'background-color':'#DDD'})
  .setWidth("1000px")
  .setHeight("2000px");
  scr.add(abs);

  var b1v = app.createVerticalPanel();
  b1v.setBorderWidth(1);
  abs.add(b1v,100,100);

  var b1n = app.createLabel("Text 1");
  b1v.add(b1n);

  var b1b = app.createLabel("Text 2");
  b1v.add(b1b);

  var b1c = app.createLabel("Text 3");
  b1v.add(b1c);

  return app;
}
于 2013-10-20T13:11:41.250 回答