我一直试图让我的UIAPP网格根据按钮插入按钮动态添加对象,但似乎无法这样做。我不知道为什么这不起作用。任何帮助将不胜感激。
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;
}
答案 0 :(得分:0)
据我所知......
如果您想在服务器函数中稍后在(3,0)中设置某些内容,则需要将此网格初始化为4行。
var columnGrid =app.createGrid(1,1).setId("columnGrid");
>> var columnGrid =app.createGrid(4,1).setId("columnGrid");
服务器函数名称只需匹配createServerHandler()...
中的内容 function trackster_addcolumn(e)
>> function addcolumn(e)
e具有传递给服务器功能的所有小部件的值,而不是实际的小部件本身。得到网格......
var columngrid = e;
>> var columngrid = app.getElementById('columngrid');