InfoPath2010+SharePoint無代碼實現下拉列表框級聯

        在前面的博文中,我曾經介紹過一種使用InfoPath默認值來實現下拉列表框級聯的方法,該方法在InfoPath2007時代FormService不支持篩選的情況下,解決了無代碼實現級聯的問題,但該方法在數據多的情況下顯得極爲繁瑣,本文中我將使用InfoPath2010介紹一種以SharePoint列表作爲數據源,實現下拉列表框級聯的方式,比較前一種方法,此方法更爲簡便靈活,易於操作。 

    在InfoPath2010中,我們注意到在InfoPath2007中“啓用瀏覽器功能的表單模板不支持篩選”的限制不見了,這意味着我們可以在FormService渲染的表單中篩選數據,使下拉列表框級聯成爲可能。 

    下面我以SharePoint列表作爲數據源爲例,講解一下實現的過程:

 

【題設】

    學校裏每個年級擁有的班級數目都不同,在選擇班級時,我們需要先選擇年級,然後將該年級所包含的班級篩選出來以供用戶選擇。

 

【準備】

    在SharePoint中創建自定義列表“班級信息”,其中包含字段:年級(單行文本)、班級(單行文本),並在其中填好所需的信息:

InfoPath表單模板的數據源中添加兩個文本類型的域(元素):

 

【詳細步驟】

1. 在Ribbon工具欄中選擇“數據”標籤,點擊“自SharePoint列表”:

  

2. 在彈出的對話框中輸入列表“班級信息”的URL地址,點擊“下一步”:

3. 選擇“班級信息”,點擊“下一步”:      

4. 勾選上“年級”“班級”,點擊“下一步”:

5. 點擊下一步,直到完成。

6. 在InfoPath的設計窗格中拖入兩個下拉列表框,分別綁定GradeClass:

7. 在Grade的下拉列表框屬性中,選擇“從外部數據源獲取選項”,在數據源中選擇“班級信息”

 

 

8. 依次點擊上圖中紅框標註的按鈕,選擇“年級”:

9. 勾選下方的“僅顯示具有唯一顯示名稱的條目”,點擊確定:

10. 在Class的下拉列表框屬性中,同樣選擇“從外部數據源獲取選項”,在數據源中選擇“班級信息”: 

 

11.點擊上圖中綠框標註的按鈕:

12. 點擊左下角的“篩選數據”,在彈出的對話框中點擊“添加”:

13. 在右側的下拉框中點擊“選擇域或組”:

14. 在彈出的對話框中,選擇主數據源:

15. 選擇“Grade”,點擊“確定”:

16. 依次點擊步驟10圖中紅框標註的按鈕,選擇“班級”:

17. 勾選下方的“僅顯示具有唯一顯示名稱的條目”,點擊確定:

18.表單模板到SharePoint,在SharePoint中查看效果:

  

       

 

【總結】

這種方法非常簡易方便,尤其適合選項需要靈活調整的情況,只需在SharePoint列表中修改即可。

當然也可以不用SharePoint作爲數據源,InfoPath2010提供了各種獲取外部數據源的接口:

 

只要能夠從數據源中獲取到需要的數據,即可仿照以上步驟對數據進行篩選並顯示在下拉列表框中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章