任何人都可以建議我如何創建一個數據庫驅動的樹形菜單,將調用一個窗體?如何創建一個動態樹菜單EXT-GWT(GXT)
我創建了一個樹形菜單,但它是硬編碼的(不是動態的)。我還必須爲每個菜單項引入一些點擊事件來調用表單。但我不確定如何去做這件事。
所以我的問題是如何動態地創建一個樹形菜單,以及處理點擊事件來調用任何形式(也是動態的)的技術是什麼?
任何人都可以建議我如何創建一個數據庫驅動的樹形菜單,將調用一個窗體?如何創建一個動態樹菜單EXT-GWT(GXT)
我創建了一個樹形菜單,但它是硬編碼的(不是動態的)。我還必須爲每個菜單項引入一些點擊事件來調用表單。但我不確定如何去做這件事。
所以我的問題是如何動態地創建一個樹形菜單,以及處理點擊事件來調用任何形式(也是動態的)的技術是什麼?
首先,你需要樹的一些部分,如你所說的硬編碼。你可以查詢你的數據庫,獲取你需要的數據,以及使用這些數據創建你想要的任何東西(複選框,treeitems等),並將它添加到你的樹中。你不必擔心給所有事物分配不同的名字,只要確保你的聽衆是正確的。
請找到創建動態樹的代碼。在這我從文本框中獲取數據並將其添加到樹中。
HorizontalPanel hpanl = new HorizontalPanel();
tree.addSelectionHandler(new SelectionHandler<TreeItem>() {
@Override
public void onSelection(SelectionEvent<TreeItem> event) {
tbox.setText(getChildToParentRoot(event));
System.out.println("Height::"+event.getSelectedItem().getOffsetHeight()+"Weight::"+event.getSelectedItem().getOffsetWidth());
System.out.println("Selected::" + event.getSelectedItem().getParentItem());
Window.alert("Selected Item:" + event.getSelectedItem().getParentItem().getText());
}
private String getChildToParentRoot(SelectionEvent<TreeItem> event) {
TreeItem child = event.getSelectedItem();
String st = null;
while (child.getParentItem() != null) {
st = st + child.getText();
child = child.getParentItem();
}
st = st + child.getText();
return st;
}
});
hpanl.setBorderWidth(1);
hpanl.setSpacing(5);
hpanl.add(option);
Button subtbtn = new Button("Add");
subtbtn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
String option1 = option.getText();
System.out.println("TextBox Value::" + option1);
if (tree.getSelectedItem() == null) {
tree.addItem(new TreeItem(option1));
}
else {
TreeItem current = tree.getSelectedItem();
current.setSelected(false);
current.addItem(new TreeItem(option1));
}
}
});
Button delete = new Button("Delete");
delete.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
tree.getSelectedItem().remove();
}
});
hpanl.add(subtbtn);
hpanl.add(delete);
VerticalPanel vpanel = new VerticalPanel();
vpanel.add(tree);
hpanl.add(tbox);
hpanl.add(vpanel);
RootPanel.get().add(hpanl);
你的問題有點太寬泛。 [你有什麼嘗試](http://mattgemmell.com/2008/12/08/what-have-you-tried/)關於動態樹?你有什麼問題? – Leigh