最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - SAPUI5: How to Bind smart table - Stack Overflow

programmeradmin5浏览0评论

Hi i have a smart table like below

<VBox id="myid">
        <smartTable:SmartTable id="smartTable_ResponsiveTable" entitySet = "Employee" enableAutoBinding="true"
                tableType="ResponsiveTable" initialise="onSmartTableInit" editable="false" useVariantManagement="false"
                useTablePersonalisation="true" header="Employees" showRowCount="true" useExportToExcel="true" />
</VBox>

my odata service is like below:

<workspace>
  <atom:title>Default</atom:title>
  <collection href="TablePersonalization">
      <atom:title>TablePersonalization</atom:title>
  </collection>
  <collection href="Employee">
     <atom:title>Employee</atom:title>
  </collection>
  <collection href="Collections">
    <atom:title>Collections</atom:title>
  </collection>
</workspace>

my smart table is there in second view which is has a navigation from the first view. when ever i move to the second view we are binding the total view with a different path like below.

  this.getView().bindElement(bindingPath);

bindingPath = "/Collections('12345')"

here in my case, i am trying to bind the path "Employee", which is a parent navigation at root level.

iam confused about entitySet and tableBindingPath

metadata of oData is as follows.

<EntityType Name="EmployeeType">
 <Key>
  <PropertyRef Name="EMP_ID"/>
 </Key>
 <Property Name="EMP_ID" Type="Edm.String" Nullable="false"   MaxLength="1024"/>
 <Property Name="NAME" Type="Edm.String" Nullable="false" MaxLength="1024"/>
 <Property Name="ADDR" Type="Edm.String" Nullable="false" MaxLength="1024"/>
 <Property Name="SAL" Type="Edm.String" Nullable="false" MaxLength="1024"/>
</EntityType>

my DB table is as follows:-

entity Employee {
    key EMP_ID      :               String(1024) not null;  // Identifier of   the Column
    NAME            :               String(1024) not null;
    ADDR            :               String(1024) not null;
    SAL             :               String(1024) not null;
}; 

my odata is as follows.

"MY_SCHEMA"."my.db.models::CollectionModel.Employee" as "Employee";

i confused about the mapping here. what does the entitySet expects, is it table name or entityType name in metadata and what about the table binding path. Can any body answere this.

Hi i have a smart table like below

<VBox id="myid">
        <smartTable:SmartTable id="smartTable_ResponsiveTable" entitySet = "Employee" enableAutoBinding="true"
                tableType="ResponsiveTable" initialise="onSmartTableInit" editable="false" useVariantManagement="false"
                useTablePersonalisation="true" header="Employees" showRowCount="true" useExportToExcel="true" />
</VBox>

my odata service is like below:

<workspace>
  <atom:title>Default</atom:title>
  <collection href="TablePersonalization">
      <atom:title>TablePersonalization</atom:title>
  </collection>
  <collection href="Employee">
     <atom:title>Employee</atom:title>
  </collection>
  <collection href="Collections">
    <atom:title>Collections</atom:title>
  </collection>
</workspace>

my smart table is there in second view which is has a navigation from the first view. when ever i move to the second view we are binding the total view with a different path like below.

  this.getView().bindElement(bindingPath);

bindingPath = "/Collections('12345')"

here in my case, i am trying to bind the path "Employee", which is a parent navigation at root level.

iam confused about entitySet and tableBindingPath

metadata of oData is as follows.

<EntityType Name="EmployeeType">
 <Key>
  <PropertyRef Name="EMP_ID"/>
 </Key>
 <Property Name="EMP_ID" Type="Edm.String" Nullable="false"   MaxLength="1024"/>
 <Property Name="NAME" Type="Edm.String" Nullable="false" MaxLength="1024"/>
 <Property Name="ADDR" Type="Edm.String" Nullable="false" MaxLength="1024"/>
 <Property Name="SAL" Type="Edm.String" Nullable="false" MaxLength="1024"/>
</EntityType>

my DB table is as follows:-

entity Employee {
    key EMP_ID      :               String(1024) not null;  // Identifier of   the Column
    NAME            :               String(1024) not null;
    ADDR            :               String(1024) not null;
    SAL             :               String(1024) not null;
}; 

my odata is as follows.

"MY_SCHEMA"."my.db.models::CollectionModel.Employee" as "Employee";

i confused about the mapping here. what does the entitySet expects, is it table name or entityType name in metadata and what about the table binding path. Can any body answere this.

Share Improve this question asked Aug 18, 2015 at 9:10 saran kumarsaran kumar 792 gold badges3 silver badges8 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 3


The entitySet expects the name of your Entity in Service. This is mainly required so that in the settings button all the fields in your entity will e up.
TableBindingPath - this is to bind the data. For example you could be binding the table to association to a Parent in which case you specify the association name.
This Reference should probably help.

Kindly note, if you do not specify the tableBindingPath and set the enableAutoBinding flag to true then system will table will automatically call getEntitySet on entitySet specified.
Hope this helps.
Thanks and Regards,
Veera

I found the below regarding SmartTable.

Check the version of the sapui5 you are using, in my case i am using sapui5 1.28.5, in which smart table is not working, then i changed the version of the sapui5 to 1.30 it started working.

发布评论

评论列表(0)

  1. 暂无评论