搜索相同数量的结果时列表未刷新

2020-09-07 09:57发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我有一个带有搜索栏的可拖...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我有一个带有搜索栏的可拖动项目列表。 当我尝试进行搜索,然后再进行一次搜索,搜索结果数量相同时,该项目将不再可拖动。

我已经尝试使DOM无效,并且也没有成功将其重新呈现。

搜索任务

 onSearchTasks:function(oEvent){var aFilters = [];
         aFilters.push(new sap.ui.model.Filter({path:" Description",operator:sap.ui.model.FilterOperator.EQ,value1:oEvent.getParameters()。query})); this.getView()  .getModel()。read("/img/OrganizationalAssignments('" + this.getView()。byId(" groupPathSelect")。getSelectedKey()+"')/GroupTasks",{
             过滤器:aFilters,
             成功:jQuery.proxy(function(oData){if(oData.results.length> 0)
                     oData.results = oData.results.sort(function(a,b){return a.Description.localeCompare(b.Description);}); this.getView()。getModel(" calendar")。setProperty("/img/GroupTasks  ",oData.results); var oList = this.getView()。byId(" groupTaskList");
                 oList.getBinding(" items")。refresh(true);},this)}); 

可拖动列表项的初始化

 _initDraggable:function(){var oGroupTaskList = this.getView()。byId(" groupTaskList"),
             oFavoriteTaskList = this.getView()。byId(" favoriteTaskList"),
             sMainGridId = this.getView()。byId(" mainGrid")。getId(),
             sGroupTaskListId = oGroupTaskList.getId(),
             sGroupTaskListUlId = sGroupTaskListId +"-listUl",
             sFavTaskListId = oFavoriteTaskList.getId(),
             sFavTaskListUlId = sFavTaskListId +"-listUl",
             fnDraggable = function(sId,sAppendTo,sContainment){
                 $(sId).draggable({
                     助手:"克隆",
                     appendTo:sAppendTo,
                     遏制:遏制,
                     恢复:"无效",
                     revertDuration:500});};

         oGroupTaskList.onAfterRendering = function(){if(sap.m.List.prototype.onAfterRendering){
                 sap.m.List.prototype.onAfterRendering.apply(this);} if(oGroupTaskList.getItems()。length> 0)
                 fnDraggable("#" + sGroupTaskListUlId +" li","#" + sMainGridId,"#" + sMainGridId);};
         oFavoriteTaskList.onAfterRendering = function(){if(sap.m.List.prototype.onAfterRendering){
                 sap.m.List.prototype.onAfterRendering.apply(this);} if(oFavoriteTaskList.getItems()。length> 0)
                 fnDraggable("#" + sFavTaskListUlId +" li","#" + sMainGridId,"#" + sMainGridId);};},

这里发生问题,在这里我们用相同数量的结果进行另一个搜索,未触发" onAfterRendering"事件。 在其他所有情况下都会触发此事件。

下面我尝试使用的一个函数也没有成功

 resetDraggable:function(){var oGroupTaskList = this.getView()。byId(" groupTaskList"),
             sMainGridId = this.getView()。byId(" mainGrid")。getId(),
             sGroupTaskListId = oGroupTaskList.getId(),
             sGroupTaskListUlId = sGroupTaskListId +"-listUl",
             fnDraggable = function(sId,sAppendTo,sContainment){
                 $(sId).draggable({
                     助手:"克隆",
                     appendTo:sAppendTo,
                     遏制:遏制,
                     恢复:"无效",
                     revertDuration:500});}; if(oGroupTaskList.getItems()。length> 0)
                 fnDraggable("#" + sGroupTaskListUlId +" li","#" + sMainGridId,"#" + sMainGridId);},

无论如何我都希望能够拖动项目

感谢和问候

2条回答
zhangjiyang1323
2020-09-07 10:18 .采纳回答

您好

尝试将重呈现器置于超时中,以将其置于事件表的末尾。

 oList.getBinding(" items")。refresh(true);
              window.setTimeout(function(){
             oList.rerender();
             },1);
 

问候,

Sarbjeet Singh

一周热门 更多>