gpt4 book ai didi

javascript - DGrid - 使用拖放时的单选模式 -> 结果是多选

转载 作者:行者123 更新时间:2023-11-30 10:16:58 24 4
gpt4 key购买 nike

我正在尝试使用以下属性让 DGrid 工作:

  • 拖放
  • 单选

不幸的是,这并不像我希望的那样容易。我这样声明我的 DGrid:

this._grid = new (declare([OnDemandGrid, DijitRegistry, Selection, DnDGrid]))({
store: this.store,
columns: [
{label: "ID", field:"id", sortable: false},
...
],
touchesToScroll: 2, // Required to enable d&d on mobile
dndSourceType: "grid-row",
getObjectDndType: function(item){
return [item.type ? item.type : this.dndSourceType];
},
selectionMode: "single"
}, this.gridDiv);
this._grid.startup();

在大多数情况下,这很有效。 DnD 正在运行。选择主要有效。偶尔会有一些奇怪的状态。这些是案例:


Shift 选择:

如果我执行轮类选择,那么我会看到多个项目看起来就像它们被选中一样。它们将附加以下 css 类:

.claro .dojoDndItemAnchor, .claro .dojoDndItemSelected { ... }

enter image description here

当监听 dgrid-select 事件时,它会正确地报告选择的元素。

尝试拖动所选元素也能正常工作 -> 只有其中一个被移动。

编辑:我找到了解决Shift Select 问题的方法。 It is posted as answer below .我仍然没有弄清楚下一期。


程序化取消选择:

如果我执行以下操作:

  1. 选择一个项目
  2. 以编程方式取消全选:this._grid.clearSelection();
  3. 以编程方式选择另一个项目:this._grid.select(row);
  4. 留下两项看起来已选中。

enter image description here

这两个项目有不同的风格。不正确的是:

.claro .dojoDndItemAnchor, .claro .dojoDndItemSelected { ... }

正确的是:

.dgrid-selected

和以前一样,当监听dgrid-select事件时,它会正确报告选中的元素。


这似乎是导致我出现问题的默认 dojo DnD 模块。查看文档似乎我需要对选择器做些什么。 Selector 有一个名为 singular 的属性,但我一直无法弄清楚如何/在哪里设置它。

关于单数的信息:https://dojotoolkit.org/reference-guide/1.9/dojo/dnd.html#id2

最佳答案

RE 编程取消选择,我认为您发现了一个合法的 dgrid 错误。我快速浏览了一下并发布了 pull request .查看该变更集是否为您解决了问题。

关于javascript - DGrid - 使用拖放时的单选模式 -> 结果是多选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23254490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com