使用JSON

时间:2017-11-06 00:07:36

标签: json formatting sharepoint-online

我尝试使用JSON格式化列表中的列,我想摆脱" mailto:"从该字段中,在字段值前添加一个小邮件图标。

我得到了JSON添加邮件图标(最后,在字段值之后 - 第一次尝试不错),但没有运气去除" mailto:"来自现场,有什么建议吗?

{
    "debugMode": true,
    "elmType": "div",
    "children": [
        {
            "elmType": "div",
            "style": {
                "padding-right": "8px"
            },
            "txtContent": "@currentField"
        },
        {
            "elmType": "a",
            "attributes": {
                "iconName": "Mail",
                "class": "sp-field-quickActions",
                "href": "@currentField"
            }
        }
    ]
}

1 个答案:

答案 0 :(得分:0)

如果您使用标准的新建/编辑表单,则超链接字段会询问URL和显示文本。如果您的显示文本是此人的名字(或href以外的任何其他字符串),则可以这样简单地更新txtContent:

"txtContent": "@currentField.desc"

如果要过渡,则可能要使用

"txtContent": "=if(@currentField.desc!='',@currentField.desc,@currentField)"

一个完整的解决方案,包括您希望将图标放置在该值可能会显示之前

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
  "elmType": "div",
  "children": [
    {
      "elmType": "a",
      "attributes": {
        "iconName": "Mail",
        "class": "sp-field-quickActions",
        "href": "@currentField"
      },
      "style": {
        "display": "=if(@currentField!='', 'block','none !important')",
        "padding-right": "8px"
      }
    },
    {
      "elmType": "div",
      "txtContent": "=if(@currentField.desc!='',@currentField.desc,@currentField)"
    }
  ]
}

因为您没有说该字段是否为必填字段,所以我添加了一种显示样式,以免在该字段为空的情况下显示图标