2017-01-30 12 views
1

У меня есть следующая проблема с моим приложением, сделанным в sap web ide с шаблоном приложения sapui5.Проблема с привязкой данных к sapui5 [То же самое значение отображается в моем списке.]

Я хочу показать некоторые значения, значения извлекаются в поле поиска, все работает нормально, но проблема заключается в том, что искомые значения, которые отображаются, одинаковы во всех записях.

Вот данные, приведенные в приложении:

Data showed on the app.

На левой стороне, значения должны быть разными, так что я не знаю, почему он не работает. Вот мой код.

<mvc:View xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns:l="sap.ui.layout" 
xmlns:f="sap.ui.layout.form" xmlns="sap.m" xmlns:sap.comp.variants="sap.ui.comp.variants" controllerName="com.my.controller.List"> 
<App> 
    <pages> 
     <Page title="{i18n>title}"> 
      <content> 
       <List items="{path:'/PTOS_INSPSet'}" id="puntosList" growing="true" growingThreshold="10" growingScrollToLoad="false" 
        mode="SingleSelectMaster" selectionChange="onItemSelected"> 
        <headerToolbar> 
         <Toolbar> 
          <Title text="{i18n>puntosListTitle}"/> 
          <ToolbarSpacer/> 
          <SearchField width="50%" search="onFilter"/> 
         </Toolbar> 
        </headerToolbar> 
        <items> 
         <ObjectListItem title="{Userc1}" > 
          <firstStatus> 
           <ObjectStatus text="{IEbeln}"/> 
          </firstStatus> 
         </ObjectListItem> 
        </items> 
       </List> 
      </content> 
     </Page> 
    </pages> 
</App> 

Это в на представлении.

И это мой контроллер для кнопки поиска.

onFilter: function(oEvent) { 
    var aFilter = [], 
    sQuery = oEvent.getParameter("query"); 
    if (sQuery && sQuery.length > 0) { 
     aFilter.push(new Filter("IEbeln", FilterOperator.Contains , sQuery)); 

    } 
    var oList = this.getView().byId("puntosList"); 
    var oBinding = oList.getBinding("items"); 
    oBinding.filter(aFilter); 
} 

Все это извлекается из частной службы odata, объявленной в моем манифесте.

UPDATE

Я проверил на моей серверной службы, и я установить два параметра в качестве ключей вместо одного и сосредоточил свой вопрос.

Благодарим за помощь.

+0

Можете ли вы проверить, являются ли ключи для возвращаемого ответа ODATA уникальными для каждой записи? Это может произойти, если значения ключа не уникальны в вашей сущности ODATA –

+0

У меня есть один ключ, например IEbeln - это ключ в этом случае, но этот ключ имеет некоторые связанные с ним значения из Userc1, например: iebeln -> userc1 [a ], userc1 [b], userc1 [c] ... – Sarco

+0

У вас, кажется, нет проблем (работает с службой Northwind). Я полагаю, это может быть только из-за вашей частной службы odata. Проверьте ответ в odata после применения фильтра. Вы также можете увеличить ключи. Также проверьте диагностику SAPUI5 (Ctrl + Alt + Shift + S) и проверьте Дерево управления на правильные привязки, применяемые ко всем объектам ObjectListItems –

ответ

1

У вас, кажется, нет проблем (работает с службой Northwind). Это может быть из-за вашей частной службы odata. Проверьте ответ в OData после применения фильтра. Вы также можете увеличить количество ключей в наборе объектов OData. Также проверьте диагностику SAPUI5 (Ctrl + Alt + Shift + S) & проверьте дерево управления на правильные привязки, применяемые ко всем объектам ObjectListItems.

Редактировать: основываясь на вашем комментарии, эта проблема была решена путем добавления другого ключа.

0

Вы связываете свой список напрямую задним концом?

+0

Да, прямо из моего бэкэнда. – Sarco

+0

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

+0

Постараюсь, а потом скажу вам, сработало ли это. – Sarco