SharePoint Online – Column Formatting – Using different columns

I had earlier blogged about Microsoft Rolling out column formatting to the first release tenants and how it could be useful in many scenarios.

For anyone who wants to get started with column formatting following article is by far the best technical documentation.

https://docs.microsoft.com/en-us/sharepoint/dev/declarative-customization/column-formatting

Today I am going to talk about one specific scenario where you would want to use other fields data on the current item.

Most column formatting examples you would see are based on the current column where you could refer the column using @currentField. In some scenarios you would want to leverage other field values in the same item. e.g. If column X value is Y then change the background color of my current column.

So for this example I am going to have two columns i.e. Picture Column and HyperLink column.

What I want to do is when my items are displayed picture is clickable and it opens a URL in your HyperLink column and opens in a new tab.

Here is code.

{
 "elmType": "a",
 "attributes": {
 "href": "[$HYPERLINK_FIELD_NAME]",
 "target": "_blank"
 },

"children": [ 
 {
 "elmType": "img",
 "txtContent": "",
 "style":{
 "min-height": "initial",
 "margin-top": "0px"
 },
 "attributes": {
 "src": "@currentField", 
 "width": "100%"
 }
 }
 ]
}

Here I have element type <a> and then I am using element type <img> as the children. Most of the image element stuff you see around style is just to align it properly.

The key thing is element type <a> where I am setting href to other HYPERLINK column value and I reference that column by using the [$FieldName]. The column is formatted within the context of the entire row. You can use this context to reference the values of other fields within the same row.

I hope this helps.