基于其他表单字段的ASP.NET和JavaScript动态显示/隐藏

基于其他表单字段的ASP.NET和JavaScript动态显示/隐藏,asp.net,javascript,jquery,Asp.net,Javascript,Jquery,我似乎一直在ASP.NET web表单中遇到这些复杂的显示/隐藏场景,其中的逻辑是“如果字段A等于blah,字段B等于blahblah,那么字段C显示/隐藏/验证/无论什么。”在我运行并开始构建自定义验证程序和自定义控件之前,我可以更轻松地在标记或后端代码中管理它,有没有我在野外错过的库或更简单的解决方案?jQuery使这项工作变得更容易,但我觉得我可以把我正在争论的很多东西抽象成一个更优雅的解决方案 所有相互依赖或可能触发事件的控件都是我自己的自定义控件,因此我觉得我可以开始编写一个小框架来处

我似乎一直在ASP.NET web表单中遇到这些复杂的显示/隐藏场景,其中的逻辑是“如果字段A等于blah,字段B等于blahblah,那么字段C显示/隐藏/验证/无论什么。”在我运行并开始构建自定义验证程序和自定义控件之前,我可以更轻松地在标记或后端代码中管理它,有没有我在野外错过的库或更简单的解决方案?jQuery使这项工作变得更容易,但我觉得我可以把我正在争论的很多东西抽象成一个更优雅的解决方案

所有相互依赖或可能触发事件的控件都是我自己的自定义控件,因此我觉得我可以开始编写一个小框架来处理它,就像这样:

<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将显示,如果不是,则隐藏


看起来(和感觉上)我似乎过度工程化了,但我越来越频繁地遇到这样大而复杂的决策树。有谁知道更好的方法或现有的库可以做这些事情?

出于兴趣,在哪些特定情况下,决策树的使用最为突出

例如,我猜在大多数情况下都是动态数据(从数据库检索的数据)。并且说它的常见用法是在表格(或问卷调查)中-很难说,因为您提供了使用decision树的示例

如果是这种情况,那么处理数据库中的所有内容并在浏览器中动态填充控件不是很好吗?您可以在数据库中设置所有dependent和ansewrLeadsTo,以及可能的答案和要生成的输入控件的类型,这将导致一个更干净的解决方案

虽然最初的设置很难,但从长远来看,考虑灵活性和维护性,并且应该没问题。