我想要一个图形容器,我可以在其中添加和删除我的自定义小部件,我可以在其中设置在这些操作发生时自动应用的排序功能。
Dojo 中是否已经有我错过的合适对象?或者也许我没有正确考虑这个问题?
如果没有,是否有任何最小工作自定义容器小部件的示例等?
我想要一个图形容器,我可以在其中添加和删除我的自定义小部件,我可以在其中设置在这些操作发生时自动应用的排序功能。
Dojo 中是否已经有我错过的合适对象?或者也许我没有正确考虑这个问题?
如果没有,是否有任何最小工作自定义容器小部件的示例等?
不要认为真的存在 - 标准组件的排序功能如何知道,它应该使用哪些参数来加权顺序,容器何时可以包含任何小部件类型?
恕我直言,使用布局小部件扩展将是您的最佳选择。他们每个人都有一个添加孩子的功能,遵循这个原型:
addChild(/*Object*/ dijit, /*Integer?*/ insertIndex)
是一个很好的dijit.layout.StackContainer
起点,它继承自dijit._Container
(and dijit.layout._LayoutWidget
)。因此,您可以选择何时调用覆盖的扩展功能。
dojo.declare("my.Container", [dijit._Container], {
getSortOrder : function(newDijit) {
var newIndex = -1; ??
// something to work with
var currentChildren = this.getChildren();
var currentDescendants = this.getDescendants();
return newIndex;
},
addChild: function(dijit, index) {
// figure out index
arguments[1] = this.getSortOrder(dijit);
this.inherited(arguments);
}
});
但请注意,layoutwidgets 比选择顺序更重要,也像边界容器的区域参数一样定位。
使用 SitePen 的dgrid,然后使用类型为 Editor 的列定义一个 List 小部件。将您的自定义小部件发送到编辑器的参数。dgrid 的 List 小部件应该能够像基于您的数据的网格一样进行排序,并且 Editor 列应该能够显示您想要的任何内容作为 List 项目内容的一部分。
如果你需要什么我会在附近。运气,