簡體   English   中英

信息路徑和級聯下拉菜單

[英]Infopath and Cascading Dropdowns

我有一個問題要問您,聰明的靈魂。 我有一個Sharepoint列表的Infopath表單(意味着這被認為是Infopath列表表單),我希望針對...執行某些操作,但我不確定如何實現。

要點是,我在表單上有兩個下拉菜單,我希望第二個下拉菜單根據第一個下拉菜單選擇更改其值。

兩者都指向同一列表。 該列表如下所示:

ID, ModuleName, SystemName, PayCode, LineOfBusoness
1, Mod1, Sys1, O, LOB1 
2, Mod2, Sys2, O, LOB2
3, Mod3, Sys3, C, LOB3
4, Mod3, Sys4, O, LOB3

第一個下拉列表僅包含支付代碼,因此基本上是“ O”和“ C”。

現在第二個下拉菜單變得棘手。

第二個下拉列表是根據上一個下拉列表中選擇的PayCode顯示該列表中的所有業務線(LOB)。 如果他們選擇“ O”,則僅顯示所有支付代碼為“ O”的LOB。

但是...如果他們選擇“ C” ...那么在他們已經選擇了“系統和模塊”的窗體上也會出現下拉菜單,因此它將使用那些選擇的值並在列表中選擇值具有他們選擇的系統,他們選擇的模塊以及他們選擇的支付碼。

我怎樣才能做到這一點? 我的第一個想法是,只使用代碼...但事實證明,Infopath不允許在“列表表單”上使用自定義代碼,這是... wtf? 因此,下一個選擇是使用“級聯下拉菜單”方法,您還可以使用規則和過濾器嘗試實現此行為。

能做到嗎? 您對如何解決此問題有何想法?

在此先感謝您,如果您需要其他信息,請告訴我!

一種方法是在后面的代碼中。

在第一個下拉列表中,找到與之關聯的字段,右鍵單擊並創建一個“ Changed”事件。

在事件背后的代碼中,將為該字段創建一個Changed事件。 在這里,您可以獲取第一個下拉列表中當前所選項目的值。 然后,根據該值,您可以修改第二個下拉列表的內容。

為此,請抓取原始列表,然后運行SPQuery來選擇所有具有“ O”或“ C”或任何選定值的項目。 您還可以在列表的所有項目上運行linq或foreach語句,無論您願意使用:)

注意:確保下拉列表控件屬性在屬性的“瀏覽器表單”選項卡中選擇了“始終”(右鍵單擊下拉列表以訪問這些屬性)

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM