【问题标题】:How to organize ASP.NET Wizard control with many databinds如何使用许多数据绑定来组织 ASP.NET 向导控件
【发布时间】:2010-10-05 00:10:14
【问题描述】:

我有一个向导控件,可以在每个步骤上进行数据绑定控件。我不能一次将它们全部数据绑定,因为它们依赖于上一步。所以,基本上我在每一步中得到的只是上一步的数据库的保存,以及当前步骤的初始化。

对于如何最好地组织我的代码有什么建议吗?它可以工作,但它的可读性不是很好,而且非常脆弱。

编辑:我应该补充一点,我已经看过大多数向导控制教程,但它们似乎都没有解决我想要做的事情。特别是需要在步骤之间保存和检索数据,以及在重新访问该步骤时如何防止它再次检索相同的数据。

【问题讨论】:

    标签: asp.net controls wizard


    【解决方案1】:

    你所做的听起来很合理。你能更具体地说明你遇到的问题吗?

    关于向导控件的一点是,随着您的工作流程变得越来越复杂,我认为您的工作流程状态和向导 SelectedViewIndex 之间的耦合会出现问题。出于这个原因,我最终将它们分开。我通常会使用状态/状态机模式,其中当前工作流状态用于确定适当的向导视图索引(反之亦然)。

    如果您正在寻找有关如何实现状态机的示例,我有一个测试应用程序,它可以像向导控件一样遍历对话框,但使用 javascript 除外。查看http://main(dot)test.wishpot.com/WaveDataCollection.Frank/,进入CollectSamples.aspx页面后,继续查看源码,然后在GotoState函数处开始查看。

    状态机在 C# 中的探测方式略有不同,主要区别在于状态对象是一个具有固定数量的事件处理程序的抽象类,每个状态都从实现每个处理程序的类继承(有些可能会引发异常)。使用 javascript,我们不需要抽象状态类...此外,在服务器端执行此操作时,您将需要能够从存储在数据库中的状态 ID 映射到状态类。

    【讨论】:

    • 不一定是问题。我只是担心解决方案需要多么复杂才能获得我想要的结果。我不确定是否有更简单的方法来实现相同的目标。您还有其他关于使用服务器控件实现状态机的信息/链接吗?
    • 关于编写状态机的任何指南......不幸的是,我阅读的介绍是 C 特定的(Miro Samek 的书)。 《重构到模式》这本书可能对它有很好的处理,但我没有副本来验证它很好地涵盖了该特定模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多