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