文章目錄
本文的內容對於管理員來說都是些基礎的SharePoint操作 ,目的是為接下來的DVWP擴充作準備。有經驗的讀者請略過。
轉入正題,不論是國家和省份,規格和顏色,職位和地點,等等都可以實現級聯——或稱為範圍限制——即一個下拉框的可選項是基於另一個下拉框的選擇項,以此來提升可用性。
但在開始實現下拉框的級聯之前,我們首先需要在資料之間建立關係。在多數情況下(如規格/顏色;職位/地點),我們還要使得內容的所有者可以方便的修改這些關係。SharePoint內建的選項型的欄並不是做這件事的最佳選擇,因為選項類型的欄的選項資料是“隱藏”在該欄的定義裡的。
用查閱項的欄實現起來更加直觀一些。同時,這種方式也是我們接下來實現下拉框的級聯所必需的。
註:本文中的很多想法都來源於Marc Anderson在jQuery Library for SharePoint Web Services(即SPServices)論壇中的一些討論。
級聯下拉框對應的網站欄
如何使下拉框的選項在一個分組下統一維護,並且可以供其他人在多個地方使用呢?比如,HR可能需要明確定義職位的名稱,而經理可能是真正使用該職位名稱來篩選僱員的人。因此,我們如何設計才能在整個公司內部“重用”資料呢?
答案:使用網站欄,在前面的博文中我們對此進行了討論。
假設你已經按照上一篇中的方法準備好了Countries和States的資料,那麼現在你有兩個資料列表了。接下來,在設定關係前,你需要一個列表來存放關係資料。
所有的關係
下拉框的級聯依賴於兩個下拉框中資料間的關係。所以,首先我們要為每套資料(比如Countries和States)建立一個列表;然後,還需要一個列表來描述兩者的關係。
下面讓我們設定關係列表。
1、點擊“網站操作”->“建立”
2、在“自訂欄表”下,點擊“資料工作表檢視中的自訂欄表”
3、在本例中,我們將關聯Countries和States,所以將列表命名為:RELCountryStates
我們並不想要在“快速啟動”欄上顯示此列表(根據你的實際需求選擇)。
注意:這裡用不含空格的字母命名關係列表,這樣能夠得到一個無需編碼轉換的名稱,將有助於我們將來在jQuery指令碼中對其引用。這一點對於中文名稱來說更需要注意。我們會在下一步中更新其“顯示名稱”。
4、現在,你就可以看到一個資料工作表檢視的列表了。我們對其進行修改,然後再填充資料。點擊“設定”->“列表設定”
- 修改名稱
- 在一般設定下,點擊“標題、說明和導航”
- 修改名稱並根據需要填寫一些描述(比如 Country-State Relationships)
- 點“儲存”按鈕
- 移除附件
- 在一般設定下,點擊“進階設定”
- 在“附件”下,點擊“禁用”
- 點“確定”按鈕(兩次)
- 添加網站欄
- 點擊“從現有網站欄添加”
- 點選所有需要的網站欄並點擊“添加>”按鈕。這裡如果你事先將所需的網站欄放在單獨的分組下,將非常方便尋找。
- 保持“添加到預設視圖”選框為選中狀態並點擊“確定”
5、點擊麵包屑導航中的列表名,返回到資料工作表檢視。
可以看到資料表中已經出現了Countries和States網站欄
6、在填充關係資料前,你應該已經準備好了相應列表的資料。如果還沒準備,那麼現在就準備吧(上一次,我分享了為網站欄所需的資訊來源列錶快速填充資料的方法)
7、接下來我們需要為配置好的關係列表填充關係資料。為每一個網站欄States中的State添加一條記錄關聯到其對應的Country。
在這裡,會顯示下拉框供我們從所有可用的值中進行選擇。
8、一條一條的填寫太費事了,所以我們將採用和上一次填充網站欄列表時類似的方法進行填充,一次性粘貼整個列表到該資料表。但是這裡會在標題列上遇到一點小問題,預設標題是必填項。我們有如下選擇:
- 我們可以把標題改為可選項(如果需要,還可以在當前視圖中將其隱藏)
- 我們可以將其改為可選項並建立一個工作流程來把相應網站欄的值串連起來產生一個唯一的標題。(不推薦)
- 我們可以利用Excel建立好整張Country-State Relationship表,然後整個粘貼到這裡。
下一次:我們將通過第一種方式快速的填充資料;然後再通過Excel來實現。
參考資料
SharePoint: Extending the DVWP – Part 17: User-Managed Dropdowns – Creating a Relationship list