拖放捕获单元格值刚刚在

时间:2016-11-29 12:21:53

标签: javascript jquery drag-and-drop cell sapui5

我目前正在构建基于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();
                }); 

1 个答案:

答案 0 :(得分:1)

我能够解决这个问题。我在监听器中作为输入获得的drop事件包含一个属性originalEvent。在此,可以找到该值。我的代码现在看起来像这样:

var strDragedValue = evt.originalEvent.dataTransfer.getData('text');