2017-02-01 2 views
0

У меня есть проблема и надеюсь найти справку. На sap.m.page я поместил список (sap.m.list)sap.m.list - скрыть строку

new sap.m.Page(
      "mainPage", { 
       title : "", 
       enableScrolling : true, 
       content : [ 
        oList = new sap.m.List("items", { 
         threshold : 2, 
         inset : false, 
         headerText : "Aufträge", 
         //filters : filters, 
         columns : [ 
          new sap.m.Column({ 
           hAlign : "Left", 
           width : '45px', 
           //styleClass : "qty", 
           header : new sap.m.Label({ 
            text : "Station" 
           }) 
          }), 
          new sap.m.Column({ 
           hAlign : "Left", 
           width : '40px', 
           header : new sap.m.Label({ 
            text : "Zeit" 
           }) 
          }), 
          new sap.m.Column({ 
           hAlign : "Left", 
           width : '20px', 
           header : new sap.m.Label({ 
            text : "" 
           }) 
          }),  
          new sap.m.Column({ 
           hAlign : "Left", 
           width : '20px', 
           header : new sap.m.Label({ 
            text : "" 
           }) 
          }),         
          new sap.m.Column({ 
           hAlign : "Left", 
           width : '50px', 
           header : new sap.m.Label({ 
            text : "Raum" 
           }), 
           minScreenWidth : "Phone"//XXSmall" 
           //demandPopin : true 
          }), 
          new sap.m.Column({ 
           hAlign : "Left", 
           width : '40px', 
           header : new sap.m.Label({ 
            text : "Bett" 
           }), 
          }), 
          new sap.m.Column({ 
           hAlign : "Left", 
           width : '20px', 
           //styleClass : "qty", 
           header : new sap.m.Label({ 
            text : "St." 
           }) 
          }), 
          new sap.m.Column({ 
           hAlign : "Left", 
           width : '20px', 
           //styleClass : "qty", 
           header : new sap.m.Label({ 
            text : "Typ" 
           }) 
           (...) 

Для записи я шаблон definded

//Template für die Listzeilen 
      var template = new sap.m.ColumnListItem({ 
       type : "Navigation", 
       cells : [ 
        new sap.m.Label({ 
         text: "{Orgpf}" 
        }), 
        new sap.m.Label({ 
         text : "{Uhrzeit}" 
        }), 
        new sap.ui.core.Icon({ 
         src: "{IconTermin}" 
        }), 
        new sap.ui.core.Icon({ 
         src: "{IconAufbereitung}" 
        }),         
        new sap.m.Label({ 
         text: "{Bett}" 
        }), 
        new sap.m.Label({ 
         text: "{Bettnr}" 
        }), 
        new sap.m.Label({ 
         text : "{Status02}" 
        }), 
        new sap.m.Label({ 
         text: "{Betttyp}" 
        }) 

(...)

Данные для списка поступают из службы odata и нашего sap-шлюза. Я заполняю таблицу подпрограммой

var filter = new sap.ui.model.Filter("Team", sap.ui.model.FilterOperator.EQ, localStorage.getItem("Team"));  
      oList.bindAggregation("items", { path: "/AuftragSet", filters: filter, template}); 

Это прекрасно работает.

Проблема: не все записи должны отображаться после загрузки записей. После обработки видимой записи со специальным типом теперь должна быть видна соответствующая запись. Я не хочу читать данные снова с помощью службы, потому что у меня нет доступа в Интернет во всех местах. Поэтому я выбираю больше записей и должен скрывать некоторые из них. Как я могу это решить? Где я могу установить фильтр?

THX для ваших ответов.

С наилучшими пожеланиями,

Sven

+0

На каком основании вы хотите скрыть строку? Является ли это полем или флагом из вашего ответа OData? –

+0

Вы можете установить sap.ui.model.Filter (вы можете найти документацию на google) или сыграть с атрибутом «visible» в элементе списка столбцов –

+0

У меня есть флаг в ответе oData. Фильтр не работал. –

ответ

0

В вашем случае фильтр не хороший вариант, потому что вы хотите, чтобы загрузить все данные и показать избранные. С другой стороны, Фильтр заставит сервер возвращать несколько строк, избивающих вашу цель.

Вы можете использовать унаследованную visible property of sap.m.ColumnListItem. При определении шаблона добавьте свойство visible и привяжите его к свойству OData.

var template = new sap.m.ColumnListItem({ 
type: "Navigation", 
visible: "{put you OData determining property here}", 
cells: [...] 
}); 

Кроме того, рекомендуется использовать sap.m.Table или один из его подклассов, как sap.m.List с колоннами осуждается. https://sapui5.hana.ondemand.com/docs/api/symbols/sap.m.List.html#addColumn.

Используйте эту ссылку, чтобы решить, какие таблицы использовать: https://sapui5.hana.ondemand.com/#docs/guide/148892ff9aea4a18b912829791e38f3e.html

Надеется, что это помогает.

+0

THX. Работает отлично. Я пытаюсь использовать sap.m.Table в следующей версии. –

0

Фильтрация данных, которые вы хотите привязать к таблице, - это хороший способ сделать. найдите ссылку ниже, чтобы отфильтровать таблицу или список успешных услуг вашего OData: sapui5-how-to-filter-data-with-2-or-more-values

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