SAPUI5 SmartTable itemPressed - 获取按下的单元格

时间:2017-08-14 14:27:13

标签: sapui5 smart-table

有没有机会在itemPress事件中获取压缩单元格的值?当有人按下列中的单元格时,我想设置工具提示。或者,是否可以仅在单元格上注册此事件?

我正在使用基于XML视图的SmartTable(响应式 - > sap.m.table):

script(type='text/javascript' src='/lib/map.js' defer='defer')

或者以某种方式将图标/图像合并到单元格值并为其设置工具提示会更好吗?

2 个答案:

答案 0 :(得分:0)

通过单元格的itemPress事件设置tooptip通常不是一个很好的做法。

您可以在列标题中设置工具提示,也可以自定义显示工具提示的列项。

您可以自定义SmartTable的内部表格,例如,列标题和列项目,如下所示。更多信息请参阅here

<smartTable:SmartTable entitySet="LineItemsSet"
    smartFilterId="smartFilterBar" tableType="ResponsiveTable"
    useExportToExcel="true" useVariantManagement="false"
    useTablePersonalisation="true" header="Line Items" showRowCount="true"
    persistencyKey="SmartTableAnalytical_Explored" enableAutoBinding="true"
    demandPopin="true" class="sapUiResponsiveContentPadding">
    <Table>
        <columns>
            <Column width="100px" hAlign="Left">
                <customData>
                    <core:CustomData key="p13nData"
                        value='\{"columnKey": "Dmbtr", "maxLength": "5","columnIndex":"4", "leadingProperty": "Dmbtr"}' />
                </customData>
                <Text text="{/#LineItems/Dmbtr/@sap:label}" />
            </Column>
        </columns>
        <items>
            <ColumnListItem>
                <cells>
                    <Text
                        text="{Dmbtr}" />
                </cells>
            </ColumnListItem>
        </items>
    </Table>
</smartTable:SmartTable>
  

如果要显示有关此列的常规信息,请设置列标题的工具提示。

<columns>
    <Column width="100px" hAlign="Left">
        <customData>
            <core:CustomData key="p13nData"
                value='\{"columnKey": "Dmbtr", "maxLength": "5","columnIndex":"4", "leadingProperty": "Dmbtr"}' />
        </customData>
        <Text text="{/#LineItems/Dmbtr/@sap:label}" tooltip = "YOUR TOOLTIP"/>
    </Column>
</columns>
  

为每个单独的单元格设置工具提示。

<items>
    <ColumnListItem>
        <cells>
            <Text text="{Dmbtr}" tooltip = "YOUR TOOLTIP"/>
        </cells>
    </ColumnListItem>
</items>

答案 1 :(得分:0)

还有一件事,当我想添加第二列时,我无法绑定它,就数据而言,数据不是来自我的entitySet,列保持为空。如果我放一个硬编码的文本,那么它就会被普及。有什么线索的原因?

for(int i = 1; i < 13; i++){
    String str = Integer.toString(i);
    mRef.child("calendar").child(str).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String start_date = (String) dataSnapshot.child("start_date").getValue();
            String end_date = (String) dataSnapshot.child("end_date").getValue();

            try {

                JSONObject jsonObject = new JSONObject();
                jsonObject.put("start_date", start_date);
                jsonObject.put("end_date", end_date);

                Log.d("obje", "" + jsonObject);

                array.put(jsonObject);

            } catch (JSONException e) {
                e.printStackTrace();
            }

            Log.d("start_date", start_date);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}