Google apps script 无法动态更新UI网格类Google应用程序脚本
我一直试图让我的UIAPP网格基于按钮插入按钮动态添加对象,但似乎无法做到这一点。我不知道为什么这不起作用。任何帮助都将不胜感激Google apps script 无法动态更新UI网格类Google应用程序脚本,google-apps-script,google-api,google-apps,Google Apps Script,Google Api,Google Apps,我一直试图让我的UIAPP网格基于按钮插入按钮动态添加对象,但似乎无法做到这一点。我不知道为什么这不起作用。任何帮助都将不胜感激 function trackColumns() { var app = UiApp.createApplication().setWidth(500).setHeight(360).setTitle('Step 1: Select Information to Track'); var panel = app.createVerticalPanel().s
function trackColumns()
{
var app = UiApp.createApplication().setWidth(500).setHeight(360).setTitle('Step 1: Select Information to Track');
var panel = app.createVerticalPanel().setId("settingsPanel");
var headerpanel = app.createVerticalPanel().setId("headerPanel").setStyleAttribute("background", "silver").setWidth(500);
var columnPanel = app.createVerticalPanel();
var mainGrid = app.createGrid(5, 1).setId("mainGrid");
var columnGrid =app.createGrid(1,1).setId("columnGrid");
var columnspanel = app.createHorizontalPanel().setId("columnspanel");
var columnname = app.createTextBox().setText("Name");
columnspanel.add(columnname);
var addcolumnspanel = app.createHorizontalPanel().setId("addcolumnspanel");
var addbuttonhandler = app.createServerHandler("addcolumn");
addbuttonhandler.addCallbackElement(columnGrid);
var addbutton = app.createButton().setId("btnaddcolumn").setText("Add another column").addClickHandler(addbuttonhandler);
addcolumnspanel.add(addbutton);
columnGrid.setWidget(0, 0, columnspanel);
mainGrid.setWidget(1, 0, columnGrid);
mainGrid.setWidget(2, 0, addcolumnspanel);
panel.add(mainGrid);
app.add(panel);
ss.show(app);
return app;
}
function trackster_addcolumn(e) {
var app = UiApp.getActiveApplication();
var columnspanel = app.createHorizontalPanel().setId("columnspanel");
var columnname = app.createTextBox().setText("Name");
var columntype = app.createListBox();
columntype.addItem("Text");
columntype.addItem("DropDown");
columntype.addItem("Date");
columntype.addItem("Number");
columnspanel.add(columnname);
columnspanel.add(columntype);
var columngrid = e;
columngrid.setWidget(3,0,columnspanel);
return app;
}
据我所知 如果您想在服务器函数后面的(3,0)中设置一些内容,则需要初始化该网格4行
var columnGrid=app.createGrid(1,1).setId(“columnGrid”)代码>>var columnGrid=app.createGrid(4,1).setId(“columnGrid”)代码>
服务器函数名只需要与createServerHandler()中的内容匹配
function trackster\u addcolumn(e)
>function addcolumn(e)
e具有传递给服务器函数的所有小部件的值,而不是实际的小部件本身。要获取网格
var columngrid=e代码>>var columngrid=app.getElementById('columngrid')代码>是的,trackster问题只是因为我输入了一些/复制了一些。网格设置为更大。var mainGrid=app.createGrid(5,1).setId(“mainGrid”);我经常遇到的错误是:在对象[object object]中找不到函数setWidget。忘记添加getElementByID。现在要是有办法检测网格中已经存在多少列就好了!flexPanel比grid更适合动态填充