使用檢視格式化來自定義SharePoint
部落格地址:http://blog.csdn.net/FoxDave
本篇開始介紹檢視格式化的功能,類同於欄位格式化,檢視也可以進行自定義格式化。
我們可以使用檢視格式化來自定義SharePoint列表和庫中的檢視如何顯示。我們需要構建一個JSON物件來描述當列表檢視中的一行資料載入時的元素要應用的樣式。檢視格式化並不會改變列表項的資料而只改變它們向使用者呈現的方式。具有列表中的建立和管理檢視許可權的使用者可以使用檢視格式化來配置檢視如何顯示。
開始進行檢視格式化
通過點選檢視的下拉選單選擇Format this view來開啟檢視格式化皮膚。
使用檢視格式化最簡單的方式跟欄位格式化類似:基於一個示例進行修改然後應用到我們特定的檢視。本文之後的部分包含一些示例,我們可以依據自己的需求進行自定義。
應用條件樣式類
我們可以通過檢視格式化基於一個到多個欄位的值應用一個到多個樣式類到整個列表檢視。
推薦的可用樣式類可以參照之前的關於欄位格式化的文章。
基於日期欄位的條件樣式類
下圖展示了基於日期欄位的條件樣式類的應用。
該示例在列表項的DueDate欄位在當前日期之前時應用sp-field-severity–severeWarning樣式類到列表檢視表示超期。
{
"schema": "https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json",
"additionalRowClass": "=if([$DueDate] <= @now, 'sp-field-severity--severeWarning', '')"
}
基於文字或選項欄位的條件樣式類
本示例採用了類似之前欄位格式化中的例子,但是在檢視格式化中additionalRowClass屬性只允許我們指定樣式類,圖示不可以。
{
"schema": "https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json",
"additionalRowClass": "=if([$Status] == 'Done', 'sp-field-severity--good', if([$Status] == 'In progress', 'sp-field-severity--low' ,if([$Status] == 'In review','sp-field-severity--warning', if([$Status] == 'Has issues','sp-field-severity--blocked', ''))))"
}
構建自定義行佈局
我們可以使用檢視格式化來定義一個完全自定義的行佈局。
多行檢視樣式
下圖展示了應用自定義多行檢視樣式的列表。
本例使用rowFormatter元素,它完全重寫了一個列表檢視行的渲染。例子中的rowFormatter為列表檢視的每行建立了一個繫結的div框。在這個繫結的框中,Feedback欄位分別在各自的行顯示。在這些欄位下面,有一個button元素,在點選時會開啟列表項的屬性檢視頁。這個按鈕是根據條件顯示的,當$Assigned_x0020_To的值為當前登入使用者才顯示。
{
"schema": "https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json",
"hideSelection": true,
"hideColumnHeader": true,
"rowFormatter": {
"elmType": "div",
"attributes": {
"class": "sp-row-card"
},
"children": [
{
"elmType": "div",
"style": {
"text-align": "left"
},
"children": [
{
"elmType": "div",
"attributes": {
"class": "sp-row-title"
},
"txtContent": "[$Title]"
},
{
"elmType": "div",
"attributes": {
"class": "sp-row-listPadding"
},
"txtContent": "[$Feedback]"
},
{
"elmType": "button",
"customRowAction": {
"action": "defaultClick"
},
"txtContent": "Give feedback",
"attributes": {
"class": "sp-row-button"
},
"style": {
"display": {
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@me",
"[$Assigned_x0020_To.email]"
]
},
"",
"none"
]
}
}
}
]
}
]
}
}
建立自定義JSON
如果我們懂它的schema的話,從頭開始建立自定義的檢視格式化JSON也很簡單。遵從下面幾個步驟:
- 下載Visual Studio Code。
- 在Visual Studio Code中建立一個新檔案,儲存成.json副檔名。
- 將下面的程式碼貼上到該檔案中:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json"
}
現在我們完成建立自己的JSON了。我們可以開始在第一行之後新增我們自己的JSON來定義schema。
詳細語法參考
rowFormatter
可選元素。指定一個描述列表檢視行格式的JSON物件。JSON物件的schema需要跟欄位格式化的schema完全相同。
注意:使用rowFormatter屬性會完全覆蓋additionalRowClass屬性中指定的所有內容,它們是互斥的。
rowFormatter元素和欄位格式化行為上的不同
儘管共享相同的schema,rowFormatter中的元素跟欄位格式化物件中相關的元素在行為上還是有一些不同的。
- @currentField在rowFormatter中總是解析為Title欄位。
additionalRowClass
可選元素,指定應用到整行的CSS樣式類。
additionalRowClass只在沒有rowFormatter元素指定的情況下生效。如果rowFormatter被指定了,additionalRowClass就會被忽略。
hideSelection
可選元素,指定是否禁用檢視中行的選擇。false是預設的行為,true表示使用者不能夠選中列表項。
hideSelection只在指定了rowFormatter元素的情況下生效。
hideListHeader
可選元素,指定檢視中的欄位頭是否隱藏。false是預設的行為,true表示檢視不會顯示欄位頭。
相關文章
- 使用欄位格式化來自定義SharePoint(二)
- 使用欄位格式化來自定義SharePoint(三)
- 使用欄位格式化來自定義SharePoint(一)
- 使用欄位格式化來自定義SharePoint(六)
- 使用欄位格式化來自定義SharePoint(五)
- 使用欄位格式化來自定義SharePoint(七)
- 使用欄位格式化來自定義SharePoint(四)
- 使用欄位格式化來自定義SharePoint(八)
- 自定義檢視指令
- Laravel 自定義檢視元件Laravel元件
- 自定義例外 + 建立檢視
- 如何使用Android自定義複合檢視Android
- 前臺使用者自定義效能檢視
- MVC自定義檢視規則MVC
- Xamarin iOS教程之自定義檢視iOS
- Android中水波紋使用之自定義檢視實現Android
- 自定義MVC檢視引擎ViewEngine 建立Model的專屬檢視MVCView
- 自定義 Command 檢視 Laravel 日誌Laravel
- 自定義檢視---圓角柱狀圖(一)
- AlertDialog 自定義對話方塊檢視
- 使用程式碼給 SAP UI5 XML 檢視新增自定義 CSSUIXMLCSS
- iOS實現自定義的彈出檢視(popView)iOSView
- Flutter - Drawer 抽屜檢視與自定義headerFlutterHeader
- 自定義提醒檢視Alert-動態繪製
- hadoop 自定義格式化輸出Hadoop
- JavaScript自定義時間日期格式化JavaScript
- Flutter日曆2.0,支援月檢視和周檢視,可以支援自定義風格Flutter
- Xamarin XAML語言教程ContentView檢視作為自定義檢視的父類View
- Flutter自定義實現神奇的卡片切換檢視Flutter
- Oracle自定義函式檢視2個字串是否匹配Oracle函式字串
- SharePoint Online 自定義Modern UI表單UI
- SharePoint REST API - 使用REST介面對列表設定自定義許可權RESTAPI
- Android 最簡單的自定義檢視管理之一Android
- 如何將自定義XML檢視注入SAP Fiori Elements應用XML
- 一.CI(Codeigniter)框架自定義檢視檔案位置框架
- 關於自定義檢視容器(Container View Controller)AIViewController
- 安卓學習筆記31:使用自定義檢視繪製文字、圖形與影像安卓筆記
- quill 富文字編輯器自定義格式化UI