AbsolutePanel不显示内容

时间:2013-10-20 10:31:47

标签: google-apps-script

我正在尝试在窗口顶部显示几个按钮(这很好),我想在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中使用谷歌图表和HTML对象,但它删除了任何脚本。

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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;
}