2016-11-29 13 views
-1

В настоящее время я создаю приложение на основе sapui5. Я хочу реализовать следующий сценарий: мое представление содержит экземпляр sap.ui.table.Table. Я включил первую строку для записи. Пользователь берет строку из инструмента MS, как электронная почта и/или слово и перемещает его вЗначение ячейки перетаскивания Drag and Drop только что упало в

первую ячейку таблицы

и бросает его там.

Я могу поймать событие drop и начать обработку. Я не могу получить доступ к новому значению, предоставленному перетаскиванием drag'n. Я пробовал различные вещи:

реферированы клетку путем вызова

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]); 

Как раз после вызова функции таким образом я пытаюсь переместить fo Кас из клетки, где я упал значение в к следующему, запустив

sap.ui.getCore().byId('__field1-col1-row0').$().focus() 

я наблюдал в отладчике (Chrome), что значение отображается в элементе управления, когда фокус перемещается. Тем не менее, значение почти в любом случае "" пусто.

Поскольку у меня заканчиваются идеи, было бы полезно получить новую информацию один раз или даже намек на то, как решить эту проблему.

Этот код обрабатывает "падение событие":

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

Пожалуйста, обратите внимание на лучшее форматирование вашего вопроса. Трудно читать. – matbtt

+0

Привет, Мэтт, спасибо за то, что он сообщил мне о проблемах с читабельностью. Есть идеи, как это решить? – Belarophon01

+0

@ Belarophon01 где из струнного пикапа? Строка не является объектом в html. Пусть ваша строка в div, p, span и т. Д. – mkysoft

ответ

1

Я был в состоянии решить эту проблему. Событие drop, которое я получаю в качестве слушателя, содержит атрибут originalEvent. В этом значении можно найти. Мой код теперь выглядит так:

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