我正在努力处理 dojo 的文档和在线信息,以找到我需要的解决方案,希望能得到您的帮助。
我正在实现从网格到源或目标的 DND:
new dojox.grid.enhanced.plugins.GridSource(dojo.byId("songForm"), {
isSource: false,
insertNodesForGrid: false
});
但是我没有在该目标中插入任何东西我正在使用onDropGridRows
列表器创建我自己的值,这是一个按钮,并将其插入另一个 div 中,其中有一个正常的 dnd 激活(calpanel):
dojo.connect(formTarget, "onDropGridRows", lang.hitch(this,function (grid, rowIndexes) {
var s = grid.store,
row = rowIndexes[0];
// html.set(dom.byId("calPanel"), "<div id='calButton_" + s.getValue(grid.getItem(row), "elementid") + "'></div>");
// domConstruct.place("<div id='calButton_" + s.getValue(grid.getItem(row), "elementid") + "'></div>", "ElementsCalculator", "last");
new dijit.form.Button({
label: s.getValue(grid.getItem(row), "pagename") + ":" + s.getValue(grid.getItem(row), "col") + ":" + s.getValue(grid.getItem(row), "row"),
class: 'dojoDndItem',
onClick: function () {
}
}).placeAt("calPanel");
if (source != null) {
source.destroy();
}
source = new dojo.dnd.Source("calPanel", {
copyOnly: false
});
}
我在这里面临两个问题:
1)应该只是网格目标的 songForm 面板也作为常规 dnd 源的目标运行,我该如何阻止这种情况发生?
2)我实现如下所示的监听器正在监听任何 DND 操作,而不仅仅是我提供的节点你知道为什么吗?
dojo.connect(source, "onDndDrop", lang.hitch(this,function (grid, rowIndexes) {}