2015-11-04 2 views
-1

У меня есть следующий список, но он не реагирует ни на одно из событий, которые я использую. В методе onSelectionChange у меня есть точки останова и обновляется метка, но по какой-то причине это не достигается. Метод onSearch работает нормально. Я использую sapui5sap.m.List не реагирует на события

<mvc:View 
height="100%" 
controllerName="Tasks.CompletedTasks.view.CompletedTasks" 
xmlns:l="sap.ui.layout" 
xmlns:core="sap.ui.core" 
xmlns:mvc="sap.ui.core.mvc" 
xmlns="sap.m"> 

     <SearchField 
       liveChange="onSearch" 
       width="100%" /> 
    <Label id="label" text="test"> 

    </Label> 
     <List 
      id="idList" 
      items="{/results}" 
      select="onSelectionChange" 
      > 

      <items> 
       <StandardListItem 
        title="{TaskTitle}" 
        description="{InstanceID}" 
       icon="sap-icon://task" 
        iconDensityAware="false" 
        iconInset="false" 
        /> 
      </items> 
     </List> 

Код:

jQuery.sap.require("jquery.sap.resources"); 
jQuery.sap.require("sap.ui.model.Filter"); 
jQuery.sap.require("sap.ui.model.FilterOperator"); 
jQuery.sap.require("Tasks.CompletedTasks.util.ModelBuilder"); 
sap.ui.controller("Tasks.CompletedTasks.view.CompletedTasks", { 

/** 
* Called when a controller is instantiated and its View controls (if available) are already created. 
* Can be used to modify the View before it is displayed, to bind event handlers and do other one-time initialization. 
* @memberOf cscompletedtasks.CompletedTasks 
*/ 
    onInit: function() { 
    //this.getView().bindElement("/results"); 
    }, 

    onSelectionChange : function (oEvt) { 

     var oList = oEvt.getSource(); 
     var oLabel = this.getView().byId("label"); 

     oLabel.setText("event"); 

    }, 
    onSearch : function (oEvt) { 

     // add filter for search 
     var aFilters = []; 
     var sQuery = oEvt.getSource().getValue(); 
     if (sQuery && sQuery.length > 0) { 
      var filter = new sap.ui.model.Filter("TaskTitle", sap.ui.model.FilterOperator.Contains, sQuery); 
      aFilters.push(filter); 
     } 

     // update list binding 
     var list = this.getView().byId("idList"); 
     var binding = list.getBinding("items"); 
     binding.filter(aFilters, "Application"); 
    } 



}); 

HTML

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
<meta http-equiv='Content-Type' content='text/html;charset=UTF-8' /> 

<script id="sap-ui-bootstrap" 
    src="https://sapui5.netweaver.ondemand.com/resources/sap-ui-core.js" 
    data-sap-ui-theme="sap_bluecrystal" 
    data-sap-ui-libs="sap.m" 
    data-sap-ui-xx-bindingSyntax="complex" 
    data-sap-ui-resourceroots='{"Tasks.CompletedTasks" : "./" }'> 

</script> 

<script> 
    new sap.ui.core.ComponentContainer({ 
     name : "Tasks.CompletedTasks" 
    }).placeAt("content"); 
</script> 

</head> 
<body class="sapUiBody" id="content"> 
</body> 
</html> 

ответ

1

выбрать работу событий, если вы установите режим из selecti on on .

<List 
      id="idList" 
      items="{/results}" 
      select="onSelectionChange", 
      mode="" //Type of mode you required SingleSelect,MultiSelect, Delete default it is None. 
      > 

      <items> 
       <StandardListItem 
        title="{TaskTitle}" 
        description="{InstanceID}" 
       icon="sap-icon://task" 
        iconDensityAware="false" 
        iconInset="false" 
        /> 
      </items> 
     </List> 

см это link для получения дополнительной информации

+0

У меня есть режим = SingleSelect, но это ничего не меняет. но не реагирует на событие. –

+0

в списке должен быть установлен переключатель. Нажмите эту кнопку, чтобы активировать функцию. – Saddamhussain

+0

Существует переключатель, но он по-прежнему не реагирует на входы. –

0

Пожалуйста, слот это в верхней части функции обработки события OnSelectionChange:

jQuery.sap.log.setLevel (jQuery.sap.log.LogLevel ['ИНФОРМАЦИЯ']); jQuery.sap.log.info («*** my onSelectionChange запустил»);

т.е .:

onSelectionChange : function (oEvt) { 

    jQuery.sap.log.setLevel(jQuery.sap.log.LogLevel['INFO']); 
    jQuery.sap.log.info("*** my onSelectionChange has triggered"); 
    var oList = oEvt.getSource(); 

Затем проверьте консоль вашего браузера и фильтр, чтобы найти выход из этого сообщения. (На всякий случай, когда событие запускается, и ваш последующий код ничего не делает. (Если вы установили LogLevel в другом месте, пожалуйста, проигнорируйте)

Смежные вопросы