2017-02-24 56 views
0

我試圖在智能表頂部實現智能篩選條。我的智能表包含一個簡單的表,這是具有formatter.js簡單的智能篩選條示例

<smartFilterBar:SmartFilterBar id="smartFilterBar" entitySet="/abc"> 
    <smartFilterBar:controlConfiguration> 
     <smartFilterBar:ControlConfiguration key="Order" label="ProdOrder"> 
      <smartFilterBar:customControl> 
       <Input id="Order" placeholder="Order"/> 
      </smartFilterBar:customControl> 
     </smartFilterBar:ControlConfiguration> 
    </smartFilterBar:controlConfiguration> 
</smartFilterBar:SmartFilterBar> 
<smartTable:SmartTable id="smartTable_ResponsiveTable" smartFilterId="smartFilterBar" tableType="ResponsiveTable" entitySet="abc" 
    enableAutoBinding="true" showRowCount="true"> 
    <smartTable:customData> 
     <core:CustomData key="p13nDialogSettings" value='{filter:{visible:false}}'></core:CustomData> 
    </smartTable:customData> 
    <Table id="table" width="auto" class="sapUiResponsiveMargin"> 
     <columns> 
      <Column id="idColumnOrder" customData:p13nData='\{"leadingProperty":["ManuOrder"]}'> 
       <Text text="{i18n>order}" id="order" tooltip="{i18n>order}"/> 
      </Column> 
     </columns> 
     <items> 
      <ColumnListItem> 
       <cells> 
        <ObjectIdentifier class="sapUiTinyMarginTopBottom" title="{ManuOrder}"/> 
       </cells> 
      </ColumnListItem> 
     </items> 
    </Table> 
</smartTable:SmartTable> 

計算字段但是,不知我的智能過濾不工作。我GOOGLE了很多,但無法找到解決方案。有人能告訴我什麼是錯的,或者可以分享如何正確實施智能過濾器的任何示例?

在此先感謝:)

+1

您的意見是太普通。你能分享什麼是你得到的錯誤? – Veeraraghavan

+0

錯誤是,當我嘗試將數據輸入到智能過濾器並按下回車鍵時,智能表不會被刷新。理想情況下,它應該刷新表格。 –

回答

0

您可以使用智能表,而不是常規表。通過這種方法,可以爲SmartFilterBar分配一個ID,然後將屬性smartFilterBarId設置爲等於過濾條的ID。然後搜索和過濾自動發生。

<smartFilterBar:SmartFilterBar id="smartFilterBar"...> 
... 
</smartFilterBar:SmartFilterBar> 
<smartTable:SmartTable smartFilterBarId="smartFilterBar"...> 
... 
</smartTable:SmartTable> 

或者,如果您使用的是常規表像你所提供的代碼,你將不得不使用控制器到達過濾器,並利用它們來過濾表的結合。您需要首先將您的表綁定到實體集(或者如果您使用的是JSON模型中的屬性),併爲篩選條的搜索事件添加事件處理程序。

在你看來:

<smartFilterBar:SmartFilterBar id="smartFilterBar" search="onSearch"...> 
... 
</smartFilterBar:SmartFilterBar> 
<Table id="table" items="{/entitySetName}"...> 
... 
</Table> 

在你的控制器:

onSearch: function() { 
    var aFilters = this.getView().byId("smartFilterBar").getFilters(); 
    this.getView().byId("table").getBinding("items").filter(aFilters); 
}