2009-09-08 30 views
0

我似乎繼續運行到ASP.NET Web表單這些複雜的顯示/隱藏場景中的邏輯是:「如果字段A等於胡說,和字段B等於blahblah,那麼字段C顯示/隱藏/驗證/無論如何。「在我跑掉並開始構建自定義驗證器和自定義控件之前,我可以更輕鬆地在標記或後端代碼中對其進行管理,是否有任何庫或更簡單的解決方案,我在野外錯過了? jQuery使工作變得更容易,但我感覺我可以將我與之爭吵的很​​多內容抽象爲更優雅的解決方案。ASP.NET和JavaScript動態顯示/隱藏基於其他表單字段

所有這一切都依賴於對方或可能引發的事件都是我自己的自定義控件已經控制的,所以我感覺我可以開始寫一個小框架來處理它,像這樣:

<my:DynamicShowHide runat="server"> 
    <PrerequisiteFields> 
     <PrerequisiteField ControlId="FieldA" Value="blah" /> 
     <PrerequisiteField ControlId="FieldB" Value="blahblah" /> 
    </PrerequisiteFields> 
    <DependentFields> 
     <DependentField ControlId="FieldC" /> 
    </DependentFields> 
</my:DynamicShowHide> 

...如果先決條件值都被評估爲true,那麼DependentField會顯示,如果不是則隱藏。

看來(和感覺)就像我過度設計,但是我碰到瘋狂龐大而複雜的決策樹這樣越來越頻繁。任何人都知道一個更好的方法或現有的圖書館,沿着這些方向行事?

回答

1

出於利益考慮,在這種特定的情況下做的決策樹使用的最突出的出現呢?

舉例來說,我猜測它是在大多數情況下,動態數據(從數據庫中檢索數據)。並說它的常見用法是形式(或問卷) - 很難說,因爲您已經提供了使用決定樹的例子。

如果這些情況,那麼豈不是很好處理的數據庫中的所有東西,並填充在動態瀏覽器中的控制?您可以設置數據庫中的所有dependantUpon和ansewrLeadsT​​o,以及可能的答案以及要生成的輸入控件的類型,這將導致更清晰的解決方案。

初始設置會很難,但從長遠來看,考慮靈活性和維修方法,它應該沒問題。

相關問題