2009-09-08 31 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,以及可能的答案以及要生成的输入控件的类型,这将导致更清晰的解决方案。

初始设置会很难,但从长远来看,考虑灵活性和维修方法,它应该没问题。

相关问题