今天小弟將再次向大家介紹一個SharePoint與InfoPath結(jié)合實現(xiàn)的小功能:在表單中添加向前和向后的導(dǎo)航按鈕,以表單中所顯示的列表信息進行導(dǎo)航。
大家應(yīng)該都見過了SharePoint 2010例新加入的模態(tài)對話框了,在2010中當(dāng)我們要查看列表項的詳細信息時終于不用在忍受頻繁的頁面刷新了,現(xiàn)在這些信息都會顯示在模態(tài)對話框中,就如下圖所示。
雖然這種在模式對話框中展現(xiàn)信息的方式已經(jīng)很好了,但如果要連續(xù)查看某個列表內(nèi)多個列表項的信息時這種方式還是不太方便,這時就可以考慮使用本篇博客所介紹的這個小功能了,這樣就可以在InfoPath表單中逐條的查看列表項的詳細信息了。
下面將向大家介紹實現(xiàn)這一功能的具體步驟:
新建一個空白表單模板。
添加一個從SharePoint庫或列表接受數(shù)據(jù)的連接,需要注意的是一定要勾選"在打開表單時自動檢索數(shù)據(jù)"。在這個例子中我連接的是一個任務(wù)列表,在這個數(shù)據(jù)連接中包含了"ID"、"標(biāo)題"、"開始日期"、"說明"四個字段。數(shù)據(jù)連接創(chuàng)建好后可在域面板中的看到下面的畫面。
接下來要做的就是對表單的布局和外觀進行設(shè)置了,首先添加三個文本框控件分別用來顯示列表項的標(biāo)題、開始日期、說明三個字段的值。
添加兩個按鈕,并將它們的標(biāo)簽分別改成"上一項"和"下一項"。
在主數(shù)據(jù)源中添加一個叫"position"的字段,這個字段將用來定位要顯示的列表項,此時表單如下所示。
選中"標(biāo)題"字段,點擊在Ribbon區(qū)的"屬性"標(biāo)簽下的"默認值"按鈕。
在彈出的"域或組屬性"窗口點擊公式按鈕。
在"插入公式"窗口點擊"插入域或組"按鈕。
在"選擇域或組"窗口中,在下拉框中選擇第二步建立的輔助數(shù)據(jù)源,展開"dataFields"節(jié)點,選擇"標(biāo)題"節(jié)點,然后點擊"篩選數(shù)據(jù)"。
在"篩選數(shù)據(jù)"窗口點擊"添加"。
在"指定篩選條件"窗口中的第一個下拉框內(nèi)選擇"選擇域或組"。
在"選擇域或組"窗口中的數(shù)據(jù)源下拉框中選擇主數(shù)據(jù)源中的"position"字段,然后點擊確定。
還是在"指定篩選條件"中的第一個下拉框內(nèi)選擇"表達式",然后將表達式的內(nèi)容從
xdXDocument:get-DOM()/my:myFields/my:position = ""
改成
number(xdXDocument:get-DOM()/my:myFields/my:position)
在"篩選數(shù)據(jù)"窗口點擊"確定"。
在"選擇域或組"窗口中點擊"確定"。
在"插入公式"窗口點擊"編輯XPath(高級)",將表達式從
xdXDocument:GetDOM("任務(wù)")/dfs:myFields/dfs:dataFields/d:SharePointpstItem_RW/d:Title [number(xdXDocument:get-DOM()/my:myFields/my:position)]
改為
xdXDocument:GetDOM("任務(wù)")/dfs:myFields/dfs:dataFields/d:SharePointpstItem_RW[number(xdXDocument:get-DOM()/my:myFields/my:position)]/d:Title
點擊"驗證公式",檢查下公式是否有錯誤。
在"開始日期"與"說明"字段中重復(fù)上面6-17步中的操作。
在右側(cè)的域面板中選擇"position"字段,然后在下拉菜單中選擇"屬性"。
將"position"字段的默認值設(shè)置為1。
為"上一項"按鈕添加規(guī)則,在規(guī)則面板內(nèi)添加一個"設(shè)置域值"的操作,設(shè)置position字段的值為position - 1。
為"下一項"按鈕添加規(guī)則,在規(guī)則面板內(nèi)添加一個"設(shè)置域值"的操作,設(shè)置position字段的值為position + 1。
在"上一項"按鈕上添加條件格式,當(dāng)position=1時設(shè)置為禁用此控件。
在"下一項"按鈕上添加條件格式,在彈出的"條件窗口"中選擇"表達式",將條件表達式的值設(shè)置為
number(xdXDocument:get-DOM()/my:myFields/my:position) >= count(xdXDocument:GetDOM("任務(wù)")/dfs:myFields/dfs:dataFields/d:SharePointpstItem_RW/d:ID)
當(dāng)滿足此條件時將此按鈕設(shè)置為禁用。
保存表單,并將表單發(fā)布到SharePoint網(wǎng)站的一個表單庫中。
好了,所有步驟都完成了,下面來看看最終效果。