You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SAPUI5的表格列中创建绑定ODATA数据的跳转链接

实现方案

核心通过sap.m.Link控件绑定OData字段,用复合绑定拼接跳转地址即可,以下是可直接复用的示例代码:


1. Controller 初始化基础地址配置(地址固定可跳过)

将公共基础地址存入JSON模型,方便全局统一管理:

onInit: function () {
  const oAppConfigModel = new sap.ui.model.json.JSONModel({
    mainUrl: "https://你的业务系统基础地址" // 可替换为实际环境地址
  });
  this.getView().setModel(oAppConfigModel, "appConfig");
}

2. XML 视图表格列配置

假设你的OData实体中,第一列对应的ID字段为ReqId,第二列对应的ID字段为JobId,表格列配置如下:

<Table items="{/YourODataSetPath}">
  <columns>
    <Column>
      <Text text="请求ID" />
    </Column>
    <Column>
      <Text text="任务ID" />
    </Column>
    <!-- 其余自定义列 -->
  </columns>
  <items>
    <ColumnListItem>
      <cells>
        <!-- 第一列:reqid跳转链接 -->
        <Link 
          text="{ReqId}"
          target="_blank"
          href="{
            parts: ['appConfig>/mainUrl', 'ReqId'],
            formatter: function(sMainUrl, sReqId) {
              return sMainUrl && sReqId ? `${sMainUrl}/bb/ccc/eee?reqid=${encodeURIComponent(sReqId)}` : '';
            }
          }"
        />
        <!-- 第二列:jobid跳转链接 -->
        <Link 
          text="{JobId}"
          target="_blank"
          href="{
            parts: ['appConfig>/mainUrl', 'JobId'],
            formatter: function(sMainUrl, sJobId) {
              return sMainUrl && sJobId ? `${sMainUrl}/bb/cc/fff?jobid=${encodeURIComponent(sJobId)}` : '';
            }
          }"
        />
        <!-- 其余单元格内容 -->
      </cells>
    </ColumnListItem>
  </items>
</Table>

可选优化:把formatter抽离到Controller

如果拼接逻辑复杂,可把拼接方法放到Controller中统一维护:

  1. Controller中新增格式化方法:
// 格式化请求ID跳转链接
formatReqLink: function(sMainUrl, sReqId) {
  if(!sMainUrl || !sReqId) return '';
  return `${sMainUrl}/bb/ccc/eee?reqid=${encodeURIComponent(sReqId)}`;
},
// 格式化任务ID跳转链接
formatJobLink: function(sMainUrl, sJobId) {
  if(!sMainUrl || !sJobId) return '';
  return `${sMainUrl}/bb/cc/fff?jobid=${encodeURIComponent(sJobId)}`;
}
  1. XML中修改href绑定即可:
<!-- 第一列href -->
href="{parts: ['appConfig>/mainUrl', 'ReqId'], formatter: '.formatReqLink'}"

<!-- 第二列href -->
href="{parts: ['appConfig>/mainUrl', 'JobId'], formatter: '.formatJobLink'}"

注意事项

  • 不需要新窗口打开跳转的话,删掉target="_blank"属性即可
  • 请把示例中的YourODataSetPath、ReqId、JobId替换为你的实际OData实体集路径和字段名
  • 基础地址固定的话,不需要配置appConfig模型,直接把地址写死在formatter的拼接逻辑里即可

内容的提问来源于stack exchange,提问作者Nandita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 13:18:03