代码之家  ›  专栏  ›  技术社区  ›  user9657450

如何在智能表sapui5中只编辑一个单元格

  •  0
  • user9657450  · 技术社区  · 7 年前

    我正在使用sapui5智能表列出我的产品。它包括产品代码、产品描述和订单数量。

    在这三个字段中,我只想更新订单数量。它应该是表中的内联编辑。

    在我的智能表中,我已将属性“可编辑”启用为“true”。它使整行可编辑。我不想让整行都可编辑,而是只想让一个单元格可编辑。

    Example

     <smartFilterBar:SmartFilterBar id="smartFilterBar" entityType="ZDEMO_C_MyEntityType" persistencyKey="SmartFilter_Explored">
     </smartFilterBar:SmartFilterBar>
    
     <smartTable:SmartTable id="mySmartTable" 
          smartFilterId="smartFilterBar"
          tableType="GridTable" 
          editable="true" 
          entitySet="ZDEMO_C_MyEntity" 
          useVariantManagement="false" 
          useTablePersonalisation="true" 
          header="My Products" 
          showRowCount="true" 
          useExportToExcel="true" 
          enableAutoBinding="true">
     </smartTable:SmartTable>
    
    3 回复  |  直到 4 年前
        1
  •  0
  •   Dumi    7 年前

    您可以在智能表中添加sap ui表,并使用customdata属性添加列。遵循以下步骤。

    1. 将可编辑=“true”设置为可编辑=“false”
    2. 在xml中,确保添加此命名空间xmlns:core=“sap.ui.core”
    3. 在smarttable标记中添加以下内容。

      <smartTable:SmartTable .................................
      
               <Table>
                  <columns>
                      <Column>
                          <customData>
                              <core:CustomData key="p13nData" value='\{"columnKey": "OrderQty", "leadingProperty": "OrderQty", "columnIndex":"2"}'/>
                          </customData>
                          <Text text="Order Qty"/>
                      </Column>
      
                  </columns>
                  <items>
                      <ColumnListItem>
                          <cells>
                              <Input value="{OrderQty}" type="Number" editable="true"/>
                          </cells>
                      </ColumnListItem>
                  </items>
              </Table>
      
        </smartTable:SmartTable>
      
        2
  •  0
  •   Andrii Naumovych    7 年前

    我可以看到两种方式:

    1. 利用“ 现场控制装置 “概念。它需要在 实体类型 ,定义字段(单元格)的状态。还有一些 注释 必须引入(后端在metadata.xml中)来启动处理。

      下面是一个链接,其中使用 类型 控件,但相同的规则适用于 桌子 以及: https://blogs.sap.com/2017/06/06/dynamic-field-control-using-annotations-in-sapui5/

    2. 重新定义 手动表格行 并将所需的单元格与 本地JSON模型 ,可根据某些条件进行更改(例如,按下编辑按钮)。

    第一种方法从架构的角度来看更好,但需要一些数据模型修改(从后端)。

    第二种方法允许在UI上执行所有操作,并编写一些复杂的UI逻辑,这些逻辑定义了单元格状态。

    你选择。

        3
  •  0
  •   DevilHunter    4 年前

    在表中添加以下标记以使列可编辑

    <table:Column sortProperty="Max_Capacity" filterProperty="Max_Capacity"  id="maxCapCol">
        <Label text="Max Capacity"/>
        <table:template>
            <Input text="{Max_Capacity}" />
        </table:template>
    </table:Column>