如何使用GAS更改tabPanel的文本

时间:2014-08-02 07:25:57

标签: google-apps-script tabpanel

是否可以使用GAS在UiApp中更改tabPanel页面和/或setVisible()的文本?

修改-1
澄清我的问题:

function doGet()
{
   var app = UiApp.createApplication();
   var tabPanel = app.createTabPanel().setId('AAA');  

   var horPanel = app.createHorizontalPanel().setId('XXX').setSize(500, 400);
   tabPanel.add(horPanel, 'YYY');

   app.add(tabPanel);
   return app;
}

我希望在用户看到面板后随时将文本'YYY'更改为其他内容。

2 个答案:

答案 0 :(得分:1)

单个面板不能作为单独的对象使用,你不能改变它们的属性,也不能单独隐藏它们,所以我担心你的尝试是不可能的。

你唯一能做的就是选择其中一个,这就是所有。

为了获得相同的功能,我使用垂直面板和处理程序,如in this example ......它完全由“普通”面板组成,我可以用它做我想做的......

编辑:切换面板的处理程序:

//Panel Handlers
  var pHandler1 = app.createClientHandler()
  .forEventSource().setStyleAttribute('color','blue')
  .forTargets(mainPanel[0]).setVisible(true)
  .forTargets(mainPanel[1],mainPanel[2],mainPanel[3]).setVisible(false)
  .forTargets(button[1],button[2],button[3]).setStyleAttribute('color','white')
  button[0].addClickHandler(pHandler1)

  var pHandler2 = app.createClientHandler()
  .forEventSource().setStyleAttribute('color','blue')
  .forTargets(mainPanel[1]).setVisible(true)
  .forTargets(mainPanel[0],mainPanel[2],mainPanel[3]).setVisible(false)
  .forTargets(button[0],button[2],button[3]).setStyleAttribute('color','white')
  button[1].addClickHandler(pHandler2)

  var pHandler3 = app.createClientHandler()
  .forEventSource().setStyleAttribute('color','blue')
  .forTargets(mainPanel[2]).setVisible(true)
  .forTargets(mainPanel[0],mainPanel[1],mainPanel[3]).setVisible(false)
  .forTargets(button[0],button[1],button[3]).setStyleAttribute('color','white')
  button[2].addClickHandler(pHandler3)

  var pHandler4 = app.createClientHandler()
  .forEventSource().setStyleAttribute('color','blue')
  .forTargets(mainPanel[3]).setVisible(true)
  .forTargets(mainPanel[0],mainPanel[1],mainPanel[2]).setVisible(false)
  .forTargets(button[0],button[1],button[2]).setStyleAttribute('color','white')
  button[3].addClickHandler(pHandler4)

使用此功能的其他应用的图片:

enter image description here

答案 1 :(得分:0)

我完成此操作不是通过向选项卡添加字符串,而是使用Label。我可以稍后使用标签的ID来调整内容。

  var horPanel = app.createHorizontalPanel().setId('XXX').setSize(500, 400);
  var horLabel = app.createLabel('YYY').setStyleAttributes({fontWeight: 'bold', color: 'red'}).setId('xxxLabel');
  tabPanel.add(horPanel, horLabel);

在回电中:

  var callBackHorLabel = app.getElementById('xxxLabel');
  callBackHorLabel.setText('ZZZ').setStyleAttributes({color: 'inherit'});

可能有更好的方法来处理创建标签的CSS以使其与默认标签匹配,但我懒得去研究它。因此,fontWeight。