0

我一直在尝试让我的 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; 
}
4

1 回答 1

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');

于 2013-05-14T02:46:30.593 回答