2015-11-04 61 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的模式列表上。

<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

我添加了mode = SingleSelect,但它没有改变任何事情。 –

+0

必须有一个单选按钮被添加到列表中按下该单选按钮该功能将被触发 – Saddamhussain

+0

有一个单选按钮,但它仍然没有对输入作出反应 –

0

请在函数处理onSelectionChange事件的榜首这样的:

jQuery.sap.log.setLevel(jQuery.sap.log.LogLevel ['信息']); jQuery.sap.log.info(“*** my onSelectionChange has triggered”);

即:

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,请忽略)

相关问题