- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好,
是否可以控制可以拖动哪些记录以及可以将它们放到哪里(在悬停期间从头开始或中间抑制拖动操作)?
我需要的详细信息如下:
我有一个包含一些组(比如男性和女性)的网格,只想激活组“女性”内的 d&d,这意味着两件事:
1.) 我开始从“女性”组 (Lisa) 中拖出一条记录。一旦拖动在“女性”组之外(在“男性”组上方...),它应该显示错误状态,就像拖动到网格边界之外时一样:
2.) 要么根本不可能从“男性”组中拖动一个项目(只是不显示 d&d 面板),要么从一开始就显示上面提到的错误状态,并且永远不要更改为“正确”状态。
谢谢,
迈克
最佳答案
在深入研究 ext 的源代码后,我发现了一个可行但并不完美的解决方案:
“drop-allowed-indication”可以由在 treeviewdragdrop-plugin 的 onViewRender 中创建的底层 DropZone 处理。这没有记录,但可以在 the source-code 中看到插件的。
需要做的所有事情(至少对于这个例子)是覆盖/扩展 DropZone 的 onNodeOver- 和 onContainerOver- 方法,以返回适当的 css 类,用于 drop-not-allowed- 或 drop-allowed -适应症。
Ext.override(Ext.view.DropZone, {
onNodeOver: function(nodeData, source, e, data) {
if (data && data.records && data.records[0]) {
// The check should be better specified, e.g. a
// female with the name 'Malena' would be recognized as male!
if (nodeData.innerHTML.indexOf(data.records[0].get('sex')) < 0) {
return this.dropNotAllowed;
}
}
return this.callOverridden([nodeData, source, e, data]);
},
onContainerOver: function(source, e, data) {
return this.dropNotAllowed;
}
});
工作示例:http://jsfiddle.net/suamikim/auXdQ/
我非常感谢对这 2 个问题的一些评论,甚至可能是一些更好的解决方案!
谢谢,米克
// Extend the treeview dropzone
Ext.define('ExtendedGridViewDropZone', {
extend: 'Ext.grid.ViewDropZone',
onNodeOver: function(nodeData, source, e, data) {
if (data && data.records && data.records[0]) {
// The check should be specified, e.g. a female with the name 'Malena' would be recognized as male!
if (nodeData.innerHTML.indexOf(data.records[0].get('sex')) < 0) {
return this.dropNotAllowed;
}
}
return this.callParent(arguments);
},
onContainerOver: function(source, e, data) {
return this.dropNotAllowed;
}
});
Ext.define('ExtendedGridDnD', {
extend: 'Ext.grid.plugin.DragDrop',
alias: 'plugin.extendeddnd',
onViewRender: function(view) {
this.callParent(arguments);
// Create a instance of ExtendedGridViewDropZone instead of Ext.grid.ViewDropZone
this.dropZone = Ext.create('ExtendedGridViewDropZone', {
view: view,
ddGroup: this.dropGroup || this.ddGroup
});
}
});
工作示例:http://jsfiddle.net/5v67W/1/
尽管如此,我仍然喜欢不同的方法,因为它仍然感觉可以更容易地完成...
关于javascript - 网格拖放 : Suppress for some records (groups),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12161803/
我有一个报告,当前以以下格式显示数据: GROUP HEADER January Meter Number Name Class Facility ... .
我有一份报告目前以下列格式显示数据: GROUP HEADER January Meter Number Name Class Facility ... ..
我有一个 WPF ListView 控件,其中包含一个用 XAML 代码编写的 ContextMenu。每次右键单击 ListView 时,即使 ListView 中没有任何项目,也会显示 Conte
在我刚接手的一个应用中发现了这一行,感觉没什么意义。 使用 (new TransactionScope(TransactionScopeOption.Suppress, new TimeSpan(1,
我目前正在学习一些基本的 java SQL 编码,为我的 SQL 项目制作基本的终端 UI。我一直在使用 PostgreSQL 我正在使用PreparedStatement为了确保自己免受 SQL 注
我已经实现了 native Android SIP solution在我的 Android 应用中。 SipProfile.Builder builder = new SipProfile.Build
我正在将指南支持库检查器集成到我的一个项目中。 Microsoft.CppCoreCheck Microsoft.Gsl 当我运行它时,我从标准库、glm、boost 等包含的库中得到了一堆错误。 一
我只是希望我的方法调用能够抑制它依次调用的方法中可能出现的所有“NoMethodError”异常。 def foo begin bar1 bar2 rescue Excepti
我最近开始尝试 clang-tidy llvm的工具。现在我试图抑制来自第三方库代码的错误警告。为此,我想使用命令行选项-header-filter=或 -line-filter=但到目前为止没有成功
我必须为 Kendo Grid 创建一个自定义的“更新”按钮。 基本上,它以编程方式将适当的行置于编辑模式(使用 editRow),将某些字段更新为特定值(使用 model.set),然后保存该行(使
我正在使用 Visual Studio 2015、FxCop 14.0。使用自定义规则,并尝试在 GlobalSuppressions.cs 中抑制消息。我在项目文件中设置了全局抑制的路径 .. .
我想回滚名为“scope”的事务,但名为 scope2 的内部事务不应回滚。但是他们都回滚了!!!选项 TransactionScopeOption.Suppress 不起作用... 我已经启用了 D
你好, 是否可以控制可以拖动哪些记录以及可以将它们放到哪里(在悬停期间从头开始或中间抑制拖动操作)? 我需要的详细信息如下: 我有一个包含一些组(比如男性和女性)的网格,只想激活组“女性”内的 d&d
以下(废话)Python模块的doctest失败: """ >>> L = [] >>> if True: ... append_to(L) # XXX >>> L [1] """ def ap
在git push heroku master上,我收到此错误: Unable to find suppressions file at location: etc/config/checkstyle
我正在尝试安装 Taiga在我的电脑上,对于其中一个脚本,它试图 import suppress 但失败了。我尝试手动执行此操作: (taiga)$ python Python 3.3.3 (defa
有时我会为某些可能运行我的应用程序的 Android 版本列出代码。使用最新 Android 工具的 Eclipse 仍然注意到我的 Manifest 文档允许较低版本的 Android,因此确定我的
我的 Android 项目中某处有这段代码: public boolean isLoadInProgress(boolean privateLoad, boolean publicLoad) {
我一直在开发一个通过 Android Beam 发送 NDEF 消息的 Android 应用程序和一个接收它们的桌面应用程序。 一切正常;但是,我个人认为 Android Beam“Tab to be
我正在使用 xlrd 来处理 Excel 文件。我在包含许多文件的文件夹上运行脚本,并且正在打印与这些文件相关的消息。但是,对于我运行的每个文件,我也会收到以下 xlrd 生成的错误消息: WARNI
我是一名优秀的程序员,十分优秀!