【问题标题】:Refresh or Clear GUI (Apps Script Gadget Embedded in Google Site)刷新或清除 GUI(Google 站点中嵌入的 Apps 脚本小工具)
【发布时间】:2013-10-16 16:12:33
【问题描述】:

我有一个我和同事经常填写的小表格,可以看到here,带有源代码(仅供查看)here。可以看到此表单发布到的电子表格(仅供查看)here

基本上,应用程序脚本仅用于防止我的同事不得不滚动浏览数千行电子表格(这也用于我们的电影收藏)来签入/签出库存。它还将很快在审计电子表格中发布详细的结帐历史记录。

我曾尝试在数据发布到电子表格后清除文本字段的值,但没有成功。我基本上想要做的是重新启动 GUI,使字段再次空白。

我尝试通过 id 访问文本字段,但返回类型是 Generic 小部件,我当然对此无能为力。而且由于控制权已传递给处理程序函数,因此无法访问文本字段,或者至少我不知道如何访问(我昨晚看了好几个小时的文档和在线解决方案)。

所以问题是:在将值发布到电子表格后,如何擦除/清除 GUI 中文本字段的值?(从处理函数返回以再次访问文本字段,或者重新启动 GUI?

我可以完成重新启动脚本在电子表格上运行,但是当它嵌入到 Google 网站时我无法做到这一点。

【问题讨论】:

    标签: gwt google-apps-script google-sites


    【解决方案1】:

    getElementById('xxxxx').setText('') 方法是正确的方法。但是您尝试测试它的方式不起作用...新值仅在下一个处理程序调用中可用

     /*
        This function only has the desired effect if it is called within the handler
        function (not within a nested function in the handler function).
     */
     function restartGUI() {
    
      var gui = UiApp.getActiveApplication();
    
      gui.getElementById('equipmentIDField1').setText('');
      gui.getElementById('equipmentIDField2').setText('');
      gui.getElementById('equipmentIDField3').setText('');
      gui.getElementById('studentLastNameField').setText('');
      gui.getElementById('labasstLastNameField').setText('');
      return gui;
    }
    

    【讨论】:

    • 我对您的答案进行了编辑 - 基本上我遇到的问题是在错误的位置调用 restartGUI() 函数 - 它需要直接在处理函数中调用,而不是在函数中在处理函数中调用。我希望这是有道理的,至少我现在明白了。 Google 关于如何访问 GUI 小部件的文档并没有非常具体地说明控件如何移动,这通常不是 GUI 组件的功能(至少在我的经验中)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    相关资源
    最近更新 更多