GWT Tree Widget getElement() 方法未按预期工作
GWT Tree Widget getElement() method not working as expected
我有一个使用 Elements 创建的 GWT UI 面板,我需要向 UI
添加一个 GWT 树
我做到了
TreeItem department = new TreeItem("Packages");
TreeItem salesDepartment = new TreeItem("Package1");
TreeItem marketingDepartment = new TreeItem("Package2");
TreeItem manufacturingDepartment = new TreeItem("Package3");
TreeItem employee1 = new TreeItem("Flight");
TreeItem employee2 = new TreeItem("Cruilse");
TreeItem employee3 = new TreeItem("Flight");
salesDepartment.addItem(employee1);
salesDepartment.addItem(employee2);
salesDepartment.addItem(employee3);
TreeItem employee4 = new TreeItem("Cruise");
TreeItem employee5 = new TreeItem("Hotel");
marketingDepartment.addItem(employee4);
marketingDepartment.addItem(employee5);
TreeItem employee6 = new TreeItem("Cruise");
TreeItem employee7 = new TreeItem("Hotel");
manufacturingDepartment.addItem(employee6);
manufacturingDepartment.addItem(employee7);
department.addItem(salesDepartment);
department.addItem(marketingDepartment);
department.addItem(manufacturingDepartment);
Tree tree = new Tree();
tree.addItem(department);
// consider that treeDiv is already added
private Element treeDiv = DOM.createDiv();
DOM.appendChild( treeDiv , tree.getElement() );
当我将树小部件添加为元素时,它仅显示文本输入而没有展开按钮或任何其他内容,它不能像树一样工作,只有文本。
请告诉我是否有解决办法。
// consider that treeDiv is already added
private Element treeDiv = DOM.createDiv();
DOM.appendChild( treeDiv , tree.getElement() );
when I added the tree widget as a Element it shows only text inputs no expand buttons or anything,its not working as a tree just texts. please tell me is there any fix for this.
我不确定该评论是什么意思,因为树刚刚创建所以不能添加 已经,但即使这是一个问题,我'我不确定为什么我们必须直接使用树的元素。如果您跳过此问题还有更多内容,请添加它们。例如:treeDiv
曾添加到什么?
作为对问题的直接回答,不要这样做。而是使用 widget 自己的 add 方法,将 widget 添加到其他 widget,而不是直接操作 dom 元素。
例如,如果您直接将树添加到 <body>
,这将如下所示:
RootPanel.get().add(tree);
或者,如果您已经有一个父窗口小部件(此处称为 panel
),只需将其直接添加到该父窗口小部件即可:
panel.add(tree);
这是因为 Widget 连接有它自己的需要设置的事件连接 - 为了避免在更糟糕的浏览器中发生内存泄漏,重要的是要确保在 widget 被删除时删除事件连接从页面上取下。更多细节见http://www.gwtproject.org/articles/dom_events_memory_leaks_and_you.html,但简短的版本是在实际添加一个小部件的dom元素到更大的dom之后,必须调用小部件的onAttach,并且任何子小部件也必须有他们的 onAttach 也调用了。这是在将一个小部件添加到另一个小部件时自动完成的 - 你应该坚持 API.
我有一个使用 Elements 创建的 GWT UI 面板,我需要向 UI
添加一个 GWT 树我做到了
TreeItem department = new TreeItem("Packages");
TreeItem salesDepartment = new TreeItem("Package1");
TreeItem marketingDepartment = new TreeItem("Package2");
TreeItem manufacturingDepartment = new TreeItem("Package3");
TreeItem employee1 = new TreeItem("Flight");
TreeItem employee2 = new TreeItem("Cruilse");
TreeItem employee3 = new TreeItem("Flight");
salesDepartment.addItem(employee1);
salesDepartment.addItem(employee2);
salesDepartment.addItem(employee3);
TreeItem employee4 = new TreeItem("Cruise");
TreeItem employee5 = new TreeItem("Hotel");
marketingDepartment.addItem(employee4);
marketingDepartment.addItem(employee5);
TreeItem employee6 = new TreeItem("Cruise");
TreeItem employee7 = new TreeItem("Hotel");
manufacturingDepartment.addItem(employee6);
manufacturingDepartment.addItem(employee7);
department.addItem(salesDepartment);
department.addItem(marketingDepartment);
department.addItem(manufacturingDepartment);
Tree tree = new Tree();
tree.addItem(department);
// consider that treeDiv is already added
private Element treeDiv = DOM.createDiv();
DOM.appendChild( treeDiv , tree.getElement() );
当我将树小部件添加为元素时,它仅显示文本输入而没有展开按钮或任何其他内容,它不能像树一样工作,只有文本。 请告诉我是否有解决办法。
// consider that treeDiv is already added private Element treeDiv = DOM.createDiv(); DOM.appendChild( treeDiv , tree.getElement() );
when I added the tree widget as a Element it shows only text inputs no expand buttons or anything,its not working as a tree just texts. please tell me is there any fix for this.
我不确定该评论是什么意思,因为树刚刚创建所以不能添加 已经,但即使这是一个问题,我'我不确定为什么我们必须直接使用树的元素。如果您跳过此问题还有更多内容,请添加它们。例如:treeDiv
曾添加到什么?
作为对问题的直接回答,不要这样做。而是使用 widget 自己的 add 方法,将 widget 添加到其他 widget,而不是直接操作 dom 元素。
例如,如果您直接将树添加到 <body>
,这将如下所示:
RootPanel.get().add(tree);
或者,如果您已经有一个父窗口小部件(此处称为 panel
),只需将其直接添加到该父窗口小部件即可:
panel.add(tree);
这是因为 Widget 连接有它自己的需要设置的事件连接 - 为了避免在更糟糕的浏览器中发生内存泄漏,重要的是要确保在 widget 被删除时删除事件连接从页面上取下。更多细节见http://www.gwtproject.org/articles/dom_events_memory_leaks_and_you.html,但简短的版本是在实际添加一个小部件的dom元素到更大的dom之后,必须调用小部件的onAttach,并且任何子小部件也必须有他们的 onAttach 也调用了。这是在将一个小部件添加到另一个小部件时自动完成的 - 你应该坚持 API.