2012-10-12 68 views
0

我有一個選項集名爲STATES。另一個名爲RESTAURANTS。基於另一個字段選擇過濾OptionSet

我的目標是根據選擇的狀態過濾餐館選項集。

我目前的方法是設計選項的值,其中:

States[0] = 1000 
States[1] = 2000 
States[2] = 3000 

接着,餐館:

Restaurants[3] = 1003 
Restaurants[30] = 2004 

然後我通過迭代的餐館時,國域改變。如果餐廳值不在所選國家的範圍內,我將調用removeOption(Restaurant.value)。

我的問題是,如果狀態改變多次,每個值都將被刪除,因爲我沒有「刷新」選項集或「replaceOption」。

有沒有什麼辦法可以顯示所有的optionSet值後,通過removeOption,通過javascript?

+1

發佈您的html和您正在使用的代碼 – charlietfl

回答

2

一個更好的設計將是有兩個自定義實體:一個用於狀態,一個用於餐廳。 餐館實體將有一個必需的(強制)查詢字段(對於N:1的關係)給各個國家。 添加查找國家和餐廳你會有選擇列表。 然後,您可以使用內置功能根據另一個查找值篩選一個查詢。沒有代碼,沒有壓力,幾乎沒有維護。

不要忘記,你需要確保用戶有「追加到」權限上

您可以通過導入設置記錄所有的狀態很輕鬆了,不要讓用戶修改這些。進口餐館包括國家信息。您可以使用安全角色來確定哪些用戶可以在將來創建新的餐廳記錄,以便使其在未成爲管理工作的情況下保持最新。

我知道這並不回答您問過濾選取列表的問題,但我確定它會回答您隱含的業務需求。

+0

注意過濾沒有被強制執行。例如。 A過濾器B,所以你從A中選擇一個選項,然後從B中選擇一個過濾的選項,然後你可以將A改變成與B完全無關的東西。當A改變時,你需要JavaScript來清除B. –

+1

沒錯,無論採取什麼方法(選取列表或查找),這都是一樣的。 當B填寫時,您可以使字段A只讀,或者如果A更改,則您可以建議清除B.我也喜歡根據B過濾A,反之亦然,或者如果B更改(如果允許用戶關閉B過濾器,您可能不想這樣做),則甚至可以將A更改爲B的正確父項。這一切都取決於確切的用法。如果用戶可能知道B而不確定A,那麼讓他們先選擇B並填入A作爲替代路徑。 – AdamV

相關問題