我目前正在构建基于sapui5的应用。我想实现以下场景:我的视图包含sap.ui.table.Table的一个实例。我启用了写入的第一行。用户从MS工具(如电子邮件和/或单词)中选取一个字符串并将其移至
表格的第一个单元格
(id : __field0-col0-row0 )
然后放在那里。
我能够捕获掉落事件并开始处理。我无法访问drag'n n drop提供的新值。我尝试了各种各样的事情:
通过调用
引用单元格sap.ui.getCore().byId('__field0-col0-row0').getValue()
我将这个单元格引用为像这样的webdoc元素
sap.ui.getCore().byId('__field0-col0-row0').$().find('input')
我延迟了这个函数,我用
读了一下这个值jQuery.sap.delayedCall(1000, oControlleroAR, "fInitializeModelForTab", [this]);
在以这种方式调用函数之后,我尝试将焦点从单元格中移出,在那里我通过运行将值放入下一个
sap.ui.getCore().byId('__field1-col1-row0').$().focus()
我在调试器(Chrome)中观察到,当移动焦点时,值会出现在控件中。 然而,几乎在任何情况下,价值都是空的。#34;",空。
由于我的想法已经不多了,所以一旦获得新内容,或者甚至提示如何解决这个问题将会有所帮助。
此代码处理" drop事件":
sap.ui.getCore().byId("__table0").getRows()[0].getCells()[0].attachBrowserEvent(
"drop",function(evt) {
jQuery.sap.delayedCall(1000, oControlleroAR, "fInitializeModelForTab", [this]);
sap.ui.getCore().byId('__field1-col1-row0').setValue("X");
sap.ui.getCore().byId('__field1-col1-row0').$().focus();
});
答案 0 :(得分:1)
我能够解决这个问题。我在监听器中作为输入获得的drop事件包含一个属性originalEvent。在此,可以找到该值。我的代码现在看起来像这样:
var strDragedValue = evt.originalEvent.dataTransfer.getData('text');