使用欄位格式化來自定義SharePoint(七)
部落格地址:http://blog.csdn.net/FoxDave
建立自定義的JSON
如果我們瞭解schema結構,從頭開始建立自定義欄位格式化JSON是很容易的事情。步驟如下:
- 下載Visual Studio Code,免費並且下載得很快哈。
- 在Visual Studio Code中,建立一個新檔案,儲存檔案為.json副檔名的檔案。
- 貼上下面的程式碼到檔案中。
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json"
}
現在我們就完成了JSON檔案的建立。我們可以在後面直接新增我們自己的定義schema位置的JSON。
提示1:在任何時候使用Ctrl+Space使Visual Studio Code提供屬性和值的輸入建議。更多資訊戳這裡。
提示2:SharePoint最佳實踐提供了一個免費的web部件叫做Column Formatter,通過它可以在瀏覽器直接編輯和應用格式化。
詳細語法參考
元素型別(elmType)
指定要建立的元素型別,有效的元素包括:
- div
- span
- a
- img
- svg
- path
- button
任何其他的值會得到一個錯誤。
按鈕元素(button)
Button元素可以用來執行父級專案上指定的操作。每個button元素都有一個標誌屬性customRowAction,它指定了一個在點選按鈕時執行的action。該操作的值必須是以下之一:
- defaultClick:具有此操作的按鈕在點選時會跟在沒有自定義的檢視中點選列表項做一樣的事。下面是一個例子,模擬點選列表項,會開啟列表項檢視頁。
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
"elmType": "button",
"txtContent": "Open this item",
"customRowAction": {
"action": "defaultClick"
}
}
- share:點選此按鈕會開啟共享視窗,下面是一個例子。
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
"elmType": "button",
"txtContent": "Share this item",
"customRowAction": {
"action": "share"
}
}
- delete:點選此按鈕會開啟刪除確認對話方塊。
- editProps:點選此按鈕會開啟列表項屬性編輯頁。
- executeFlow:點選此按鈕會執行指定的流,通過actionParams屬性中的ID標識。前面的文章有示例。
txtContent
指定elmType指定的元素的文字內容的可選屬性。該屬性值可以是字串或表示式物件。
style
指定應用到elmType指定的元素的樣式的可選屬性。它是一個鍵值對分別對應CSS名稱和值的物件。樣式物件中每個屬性的值可以是字串或表示式物件。允許的樣式屬性有以下這些。
'background-color'
'fill'
'background-image'
'border'
'border-bottom'
'border-bottom-color'
'border-bottom-style'
'border-bottom-width'
'border-color'
'border-left'
'border-left-color'
'border-left-style'
'border-left-width'
'border-right'
'border-right-color'
'border-right-style'
'border-right-width'
'border-style'
'border-top'
'border-top-color'
'border-top-style'
'border-top-width'
'border-width'
'outline'
'outline-color'
'outline-style'
'outline-width'
'border-bottom-left-radius'
'border-bottom-right-radius'
'border-radius'
'border-top-left-radius'
'border-top-right-radius'
'box-decoration-break'
'box-shadow'
'box-sizing'
'overflow-x'
'overflow-y'
'overflow-style'
'rotation'
'rotation-point'
'opacity'
'height'
'max-height'
'max-width'
'min-height'
'min-width'
'width'
'align-items'
'box-align'
'box-direction'
'box-flex'
'box-flex-group'
'box-lines'
'box-ordinal-group'
'box-orient'
'box-pack'
'font'
'font-family'
'font-size'
'font-style'
'font-variant'
'font-weight'
'font-size-adjust'
'font-stretch'
'grid-columns'
'grid-rows'
'margin'
'margin-bottom'
'margin-left'
'margin-right'
'margin-top'
'column-count'
'column-fill'
'column-gap'
'column-rule'
'column-rule-color'
'column-rule-style'
'column-rule-width'
'column-span'
'column-width'
'columns'
'padding'
'padding-bottom'
'padding-left'
'padding-right'
'padding-top'
'bottom'
'clear'
'clip'
'display'
'float'
'left'
'overflow'
'position'
'right'
'top'
'visibility'
'z-index'
'border-collapse'
'border-spacing'
'caption-side'
'empty-cells'
'table-layout'
'color'
'direction'
'letter-spacing'
'line-height'
'text-align'
'text-decoration'
'text-indent'
'text-transform'
'unicode-bidi'
'vertical-align'
'white-space'
'word-spacing'
'hanging-punctuation'
'punctuation-trim'
'text-align-last'
'text-justify'
'text-outline'
'text-shadow'
'text-wrap'
'word-break'
'word-wrap'
下面的例子展示了樣式物件的值。在該示例中,兩個樣式屬性(padding和background-color)會被應用。padding的值為寫死的字串。background-color的值為一個表示式,可能是紅色或者綠色,基於當前欄位的值是否小於40(@currentField)而定。
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
"padding": "4px",
"background-color": {
"operator": "?",
"operands": [
{
"operator": "<",
"operands": [
"@currentField",
40
]
},
"#ff0000",
"#00ff00"
]
}
}
attribute
指定新增到elmType指定的元素的附加屬性的可選屬性。它也是一個鍵值對,屬性名必須是下面中的一個:
- href
- rel
- src
- class
- target
- title
- role
- iconName
- d
- aria
任何其他的屬性都會得到一個錯誤。屬性值可以是表示式物件或者字串。下面的例子新增了target和href兩個屬性到elmType指定的元素。target屬性為寫死的字串。href屬性為表示式,會在執行時轉換為http://finance.yahoo.com/quote/ +當前欄位(@currentField)的值。
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
"target": "_blank",
"href": "='http://finance.yahoo.com/quote/' + @currentField"
}
children
指定elmType指定的元素的子元素的可選屬性。值為elm陣列物件,可以有任意級別。如果一個元素具有txtContent屬性,子元素的屬性會被忽略。
debugMode
關於除錯的可選屬性,它會輸出錯誤資訊和警告到控制檯。
相關文章
- 使用欄位格式化來自定義SharePoint(二)
- 使用欄位格式化來自定義SharePoint(三)
- 使用欄位格式化來自定義SharePoint(一)
- 使用欄位格式化來自定義SharePoint(六)
- 使用欄位格式化來自定義SharePoint(五)
- 使用欄位格式化來自定義SharePoint(四)
- 使用欄位格式化來自定義SharePoint(八)
- 使用檢視格式化來自定義SharePoint
- 使用自定義任務審批欄位建立 SharePoint 順序工作流
- PhpCms自定義欄位的使用說明PHP
- Request 增加自定義欄位的方式
- laravel model自定義軟刪除欄位Laravel
- Mybatis-plus排除自定義欄位不查詢MyBatis
- 自定義ALV欄位分類時注意
- java欄位格式化Java
- SharePoint JavaScript 更新使用者和組欄位JavaScript
- CodingBlock客戶化自定義新欄位BloC
- 織夢後臺新增自定義欄位樣式修改
- DEDE檢測重複自定義欄位禁止釋出
- django admin中增加自定義超連結欄位Django
- SAP不同的產品是如何支援使用者建立自定義欄位的
- Laravel6:自定義多欄位登入,使用者名稱,郵箱等Laravel
- DedeCMS的checkbox多選欄位自定義取值的方法
- 升級後欄位引數有自定義函式失效函式
- WordPress自定義欄位獲取get_post_meta函式函式
- SD--如何在輸出控制中增加自定義欄位
- Qt隱藏系統標題欄,使用自定義標題欄QT
- UIWebView自定義選單欄UIWebView
- 多型關聯自定義的型別欄位的處理多型型別
- 《物料清單彙總查詢》二開增加自定義欄位
- 織夢多行文字自定義欄位 支援自動換行
- hadoop 自定義格式化輸出Hadoop
- JavaScript自定義時間日期格式化JavaScript
- Laravel 自定義表單請求驗證忽略某些欄位驗證Laravel
- Log4Net 新增自定義欄位並儲存到資料庫資料庫
- Android 自定義View:深入理解自定義屬性(七)AndroidView
- 自定義側邊快速索引欄索引
- Android 自定義標題欄Android