uitableview - SAPUI5:如何向ui.table的列菜单添加自定义功能?

标签 uitableview data-binding formatting sapui5 number-formatting

我想让我的用户有机会在数据加载到表格后重新格式化表格单元格。我认为一个巧妙的方法就是将功能添加到列菜单中。因此,当单击表格列时,菜单会附加标准的“过滤、排序”,但还有一行名为“格式”的行,它提供了一些选项(例如,将数字单元格格式从 55555,55 到 55.555,55)

不幸的是,我无法找到向我的列菜单添加新行的方法。我的排序和过滤是这样添加的:

oTable.bindColumns("/columns", function(index, context) {
    var columnName = context.getObject().columnId;
    return new sap.ui.table.Column({
        label:columnName,
        template: columnName,
        sortProperty: columnName,
        filterProperty: columnName,
    });
});

如何向列菜单添加新行/功能?

更新

这是我的表格在 xml View 中的样子:

 <table:Table id="uploadData" visibleRowCountMode="Auto" rowSelectionChange="tableRowSelectionChange" enableCellFilter="true" fixedColumnCount="0" enableBusyIndicator="true" customData="{Type: 'sap.ui.core.CustomData', key:'table-style-type', value:'custom-styled',  writeToDom: true }">
        <table:extension>
                <m:Button icon="sap-icon://download" press="onDataExportXLS" align="Right" />
        </table:extension>

        <table:columns>
                <!-- Columns dynamically created in controller -->
        </table:columns>
        <table:rows>
                <!-- Rows created in controller -->
        </table:rows>
</table:Table>

最佳答案

sap.ui.table.Column 有一个名为 menu 的聚合,专门用于此目的。它接受单击列时显示的任何自定义菜单项。此聚合采用 sap.ui.unified.Menu 控制。

MenuItem聚合的select函数中,您可以编写函数来处理选择菜单项时需要执行的操作

sap.ui.table.Column documentation

sap.ui.unified.Menu documentation

查看this sample hereits code here ,点击数量列,您将看到我的自定义菜单条目

此处的 XML 代码片段,

<Column id="quantity" width="6rem" hAlign="End" sortProperty="Quantity">
    <m:Label text="Quantity" />
    <template>
        <m:Label text="{ path: 'Quantity', type: 'sap.ui.model.type.Integer'}" />
    </template>
    <menu>
        <u:Menu ariaLabelledBy="quantity">
            <u:items>
                <u:MenuItem text="My custom menu entry" select="onQuantityCustomItemSelect" />
                <u:MenuItem text="Sort" select="onQuantitySort" icon="sap-icon://sort" />
            </u:items>
        </u:Menu>
    </menu>
</Column>

JS代码,

var oColumn = new sap.ui.table.Column({
    label: "Some column Name",
    menu: new sap.ui.unified.Menu({
        items: [new sap.ui.unified.MenuItem({
            text: "My custom menu",
            select: function (oEvent) {
                pressEventOnItem(oEvent);
            })
        ]
    })
})

关于uitableview - SAPUI5:如何向ui.table的列菜单添加自定义功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53077991/

相关文章:

ios - 隐藏单个 UITableViewCell 分隔符

ios - 在 InterfaceOrientation 上的 customCell 内重新定位 UIButtons

swift - 只有一个自定义 tableviewcell 正常工作

c# - 我如何创建特定编号的 ListView。 WPF 中的列数?

WPF Master-Details View ,带 Listbox 和 Combobox 带绑定(bind)

ios - 如何在 Storyboard 中向 UITableView 添加页脚

c# - 如何使用 WPF Modern-UI 对菜单链接进行数据绑定(bind)

objective-c - 本地化电话号码格式

Python:日期时间格式

r - knitr: block 中的代码意外地被包装