GAS模态对话框如何添加滚动条?
How to add Scroll Bar to GAS Modal Dialog Box?
我想知道如何将滚动条添加到我的 Google Apps 脚本代码,以便我可以滚动浏览对话框中的项目列表。
我的代码的 Sidebar 方法(除了 showModalDialog 与 showSidebar 之外完全相同)确实滚动,但 Dialog 方法没有。
我试过添加 overflow: auto;和溢出:滚动;基本上我能找到的每个 div,都没有结果(尽管 GAS 中的 iFrame 应该已经设置为自动?)。
我能找到的与 Apps 脚本、对话框和滚动条相关的唯一信息是 app.createScrollPanel,它已于去年弃用。
这是我使用的代码:
function showSidebarAdd() {
var ui = SpreadsheetApp.getUi();
var addUi = HtmlService.createTemplate(getAddUi()).evaluate().getContent();
var html = HtmlService.createTemplate(addUi+
"<script>\n" +
"var data = "+
getInvData()+
"</script>")
.evaluate()
.setTitle('Add Items to Inventory')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName('Unsorted Inventory'));
ui.showSidebar(html);
}
function showDialogAdd() {
var ui = SpreadsheetApp.getUi();
var addUi = HtmlService.createTemplate(getAddUi()).evaluate().getContent();
var html = HtmlService.createTemplate(addUi+
"<script>\n" +
"var data = "+
getInvData()+
"</script>")
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(500)
.setHeight(850)
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName('Unsorted Inventory'));
ui.showModalDialog(html,'Add Items to Inventory');
}
这是滚动条版本的样子:
Sidebar
这是对话框版本的样子:
Dialog
希望它可以在对话框中完成,因为我更喜欢列表采用自定义尺寸的弹出式样式,而不是挤压到侧边栏
提前致谢!
"To resize a dialog that is already open, call google.script.host.setWidth(width) in client-side code."
解决了我的问题!通过在创建对话框时删除 .setHeight() ,滚动条会自行显示并正常工作。
我想知道如何将滚动条添加到我的 Google Apps 脚本代码,以便我可以滚动浏览对话框中的项目列表。
我的代码的 Sidebar 方法(除了 showModalDialog 与 showSidebar 之外完全相同)确实滚动,但 Dialog 方法没有。
我试过添加 overflow: auto;和溢出:滚动;基本上我能找到的每个 div,都没有结果(尽管 GAS 中的 iFrame 应该已经设置为自动?)。
我能找到的与 Apps 脚本、对话框和滚动条相关的唯一信息是 app.createScrollPanel,它已于去年弃用。
这是我使用的代码:
function showSidebarAdd() {
var ui = SpreadsheetApp.getUi();
var addUi = HtmlService.createTemplate(getAddUi()).evaluate().getContent();
var html = HtmlService.createTemplate(addUi+
"<script>\n" +
"var data = "+
getInvData()+
"</script>")
.evaluate()
.setTitle('Add Items to Inventory')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName('Unsorted Inventory'));
ui.showSidebar(html);
}
function showDialogAdd() {
var ui = SpreadsheetApp.getUi();
var addUi = HtmlService.createTemplate(getAddUi()).evaluate().getContent();
var html = HtmlService.createTemplate(addUi+
"<script>\n" +
"var data = "+
getInvData()+
"</script>")
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(500)
.setHeight(850)
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName('Unsorted Inventory'));
ui.showModalDialog(html,'Add Items to Inventory');
}
这是滚动条版本的样子: Sidebar
这是对话框版本的样子: Dialog
希望它可以在对话框中完成,因为我更喜欢列表采用自定义尺寸的弹出式样式,而不是挤压到侧边栏
提前致谢!
"To resize a dialog that is already open, call google.script.host.setWidth(width) in client-side code."
解决了我的问题!通过在创建对话框时删除 .setHeight() ,滚动条会自行显示并正常工作。