当前位置: 首页 > 知识库问答 >
问题:

使用类UI与IF语句

葛鸿轩
2023-03-14

我目前正在尝试用谷歌应用程序脚本创建一个自定义UI对话框。

以下是我当前的脚本:

function onEdit(e) {
  var cell = e.range;
  var cellColumn = cell.getColumn();
  var cellSheet = cell.getSheet().getName();
  var cellValue = e.value;
  var sheet = "System_Info"; 


  if (cellSheet !== sheet) {
  if (cellColumn === 4 || cellColumn === 5) {
    if (cellValue === "PT1 - Induction Training") {
      Browser.msgBox('Course Information', "PT1 - Induction Training:\\n\\nType: Theory \\n\\nTime Needed: 15-20 Minutes\\n\\n Learning Resource/Manual: BBACT, Forum Post: Rules for Officers" , Browser.Buttons.YES_NO);  //Add the course name and the message that I want to popup. Course name should be exactly the same as in the list (case sensitive)
    } 

    else if (cellValue === "PT2 - Traffic & Communications - Part 1") {
      Browser.msgBox("PT2 - Traffic & Communications - Part 1 - Starting a Patrol/Loadouts: \\n\\nType: Practical \\n\\nTime Needed: 15-20 Minutes\\n\\n Learning Resource/Manual: PT2 Guide \\n Section: 1, 2");  //// add as many "else if" conditions as you want"
    } else if (cellValue === "PT2 - Traffic & Communications - Part 2") {
  } 


      else if (cellValue === undefined) {  }
    else {
      Browser.msgBox('You have entered an invalid data, please select correct data corresponding to the Column.');   //This is in case they put a wrong course name
    }
  }
}
}

现在,我发现浏览器消息框不能支持自定义按钮,但用户界面可以。

我试图将它添加到每个if语句的代码中,但是每个if语句都会有所不同。

代码:

// Display a dialog box with a message and "Ok" and "Guide" buttons. The user can also close the
 // dialog by clicking the close button in its title bar.
 var ui = SpreadsheetApp.getUi();
 var response = ui.alert("PT1 - Induction Training:\\n\\nType: Theory \\n\\nTime Needed: 15-20 Minutes\\n\\n Learning Resource/Manual: BBACT, Forum Post: Rules for Officers", ui.ButtonSet.OK_GUIDE);

 // Process the user's response.
 if (response == ui.Button.OK) {
   Logger.log('The user clicked "Ok."');
 } else {
   Logger.log('The user clicked "Guide", open up guide link: www.britishborders.co.uk/laws');
 }

本质上,我希望在输入特定值时出现自定义对话框,如IF语句中所示。在该对话框中,它将显示课程信息以及通过选择“好的”关闭该框的能力,并且他们还可以通过单击“指南”查看指南。

感谢您的帮助。

共有1个答案

汝天宇
2023-03-14

这与你昨天问的问题极其相似,你本应该做出回应,而不是提出一个新的问题。话虽如此,我提供的显然不够有帮助——你不能做ui。按钮集。MadeUpButton.您需要使用超文本标记语言来提供自定义内容,并带有一个按钮:

function buttonDemo(){
var htmlOutput = HtmlService
     .createHtmlOutput('<p>A change of speed, a change of style...</p><br><button onclick="google.script.run.logMe()">Close</button>')
     .setSandboxMode(HtmlService.SandboxMode.IFRAME)
     .setWidth(250)
     .setHeight(300);
 SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'My add-on');
}
function logMe(){
Logger.log("You've been logged")
}

尝试运行该代码-当您单击按钮时,logMe()将运行。您可以将任何超文本标记语言附加到if语句中的htmlOutput变量中。您可以有两个按钮来调用单独的函数,或者将变量传递给一个函数。例如,google.script.run.logMe(selectedOption)。希望这能解决你的问题...

 类似资料:
  • 我有一个脚本,当只有某些工作表打开时,我想在打开时运行它,但在绑定脚本的电子表格中没有其他工作表。所需的所有工作表的名称都为“代理报告-‘NameOfAgent’”。每个代理报告中还包含某些单元格,可用于IF条件语句。从逻辑上讲,我希望: 如果活动工作表的名称包含“代理报告”- 或者,如果处于活动工作表单元格A2==“角色”- 谢谢你的帮助。

  • 行动时刻 - 在unlang中使用if语句 if语句本身并不复杂。 它具有以下格式: if(condition){ ... } 由于其许多可能性,条件部分可能变得复杂。 使用if语句获取返回码 我们现在将查看模块的返回代码,并使用此代码与指定的条件进行比较。 FreeRADIUS中的每个模块都需要在调用时返回代码。 随后可以将此代码的值用作if语句中的条件检查。 使用if语句授权用户 如

  • 问题内容: 在C语言中,我可以编写一个if语句 但是,当我尝试在Java中执行相同操作时,编译器会告诉我“不兼容的类型”,并说我需要一个而不是一个。有什么方法可以用Java编写C代码吗? 问题答案: 以下任何一项都可以为您工作:

  • 问题内容: 您可以像这样在JSX中使用if语句吗? 像上面的东西?是否可以根据条件使用JSX? 问题答案: 使用条件渲染,并且由于没有其他情况,因此为了简洁起见,可以使用而不是三元运算符: 之所以起作用,是因为在JavaScript中,总会求和,并且总会求和。 因此,如果条件为true,则&&之后的元素将出现在输出中。如果为假,React将忽略并跳过它。 从而: 仅当条件为true时才渲染JSX。

  • 我有一个xslt文档。我想在这个文档中使用if语句。我的代码是: 如果返回的值是code1然后写A,如果返回的值是code2然后写B。 我该怎么做?

  • 问题内容: 我知道我们不能像其他几种语言中那样在Java的if语句中使用赋值运算符。 那是 将给出编译错误。 但是以下代码可以正常工作,如何? 编辑:这是不能在if语句中使用赋值的例外规则。 问题答案: 因为赋值的“结果”是赋值的值,所以在第二种情况下它仍然是表达式。表达式要求条件是表达式,第二个但不是第一个满足。实际上,您的两个片段是: 和 通过该扩展是否可以编译第二个版本而不是第一个版本? 这