Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在模态对话框中创建按钮并在电子表格中运行代码_Javascript_Google Apps Script_Google Sheets_Web Applications_Modal Dialog - Fatal编程技术网

Javascript 在模态对话框中创建按钮并在电子表格中运行代码

Javascript 在模态对话框中创建按钮并在电子表格中运行代码,javascript,google-apps-script,google-sheets,web-applications,modal-dialog,Javascript,Google Apps Script,Google Sheets,Web Applications,Modal Dialog,我制作了一个表格,并在模式对话框中显示,这样表格中的每一行都会出现按钮。我的问题是如何使模式对话框中的按钮在电子表格中的特定行上运行?示例:单击模式对话框第一行中的第一个按钮,将运行并更改电子表格第一行中的数据。我是否需要为每个按钮创建特定的ID My GS code: function leadRespond(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Qu

我制作了一个表格,并在模式对话框中显示,这样表格中的每一行都会出现按钮。我的问题是如何使模式对话框中的按钮在电子表格中的特定行上运行?示例:单击模式对话框第一行中的第一个按钮,将运行并更改电子表格第一行中的数据。我是否需要为每个按钮创建特定的ID

My GS code:
function leadRespond(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Query_Script");
  var dataRange = sheet.getDataRange();
  var dataValue = dataRange.getDisplayValues();
   
  var temp = HtmlService.createTemplateFromFile("lead");
  temp.data = {application : dataValue};
  var html = temp.evaluate().setWidth(1200).setHeight(600);
  SpreadsheetApp.getUi().showModalDialog(html,"Manage Leave");
}
HTML代码:
请假申请
var output=document.getElementById(“输出”);
window.onload=函数(){
google.script.run.withSuccessHandler(onSuccess.getTable();
}
函数onSuccess(数据){
if(data.success){
console.log(data.data);
var html='';
var行;
对于(var i=0;i使用自定义属性和:


可以显示您当前的代码吗?欢迎使用。请按照中的建议添加您的搜索/研究工作的简要说明。@TheMaster我刚刚编辑了我的问题。这是我的代码。
HTML code:
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
</head>
  <body>
    <h1>Leave Application</h1>
    <div id="output"></div>
    
   
    <script>
      var output = document.getElementById("output");
      
      window.onload = function (){
        google.script.run.withSuccessHandler(onSuccess).getTable();
      }

      function onSuccess(data){
        if(data.success){
        console.log(data.data);
        var html = '<table>';
        var row;
        for(var i=0; i<data.data.length; i++){
          html += '<tr>';
          row = i;
          //console.log(row);
          for (var j=0; j<9; j++){
            html += '<td>'+ data.data[i][j]+'</td>';
          }
          html += '<td>'+ '<button onclick="approve()">Approved</button>'+'</td>';
          html += '</tr>';
        }
          html += '</table>';
          output.innerHTML = html;
        console.log(data);
        }
      }

      function approve(){
        google.script.run.getRow();
        console.log("test");
      }

    </script>
  </body>
</html>
Code with google.script.run :

function getTable(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Query_Script");
  var data = sheet.getDataRange().getDisplayValues();
  Logger.log(data);
  return {'success': true,'data':data};
}

function getRow(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Query_Script");
  for (var i=0; i<dataValue.length; i++){
      var row = "";
      var rowNum;
        for (var j = 0; j < 9; j++) {
          if (dataValue[i][j]) {
            row = row + dataValue[i][j];  //row = "" + range(0,0) [emailAddress], row = range(0,0)+ range(0,1)[emailAddress,Timestamp]
          }
        row = row + ",";
        }
        row = row + " Row num " + i;
        rowNum = i;
        
        Logger.log(row);
        Logger.log(rowNum);
    }
}
html += '<td>'+ '<button data-row="'+i+'" data-column="'+j+'">Approved</button>'+'</td>';
//...
  output.innerHTML = html;
  console.log(data);
  const table = document.querySelector("table");
  table.addEventListener('click', approve);
}

function approve(e){
  const td = e.target;
  const [row, column] = [td.dataset.row,td.dataset.column];
  google.script.run.modifyRows(row,column);
}