2014-01-25 53 views
0

我们有一个用C#开发的asp.net web表单。这种形式有大约100个字段,它是非常动态的形式。从某种意义上说,它是动态的,当你第一次开始时你只能看到大约20个字段,但随着你继续在表单中进行不同的选择,包含字段的面板被显示或隐藏。几乎每个字段都使用.net验证器在客户端进行验证。 JavaScript用于打开/关闭验证器,具体取决于它们所在的面板是否可见。asp.net需要关于复杂形式和验证器的一些设计建议

这个表单有一些bug,后面调试这个表单很麻烦,因为almos每个字段都至少有2个验证器 - require和/ regular experssion。还有一些被选中的字段做autopostback。大多数用户不能提交表单,因为一个/多个验证器仍然启用,但它们所连接的字段是不可见的,因此很难调试哪个验证器导致问题。

所以这里我的设计问题。

  • 在这种情况下调试验证器的更简单的方法是什么?如何找到哪些验证器仍在?
  • 而不是使用asp.net验证器,我应该重新编码表单,并且使用JavaScript进行验证,至少用这种方法可以更好地调试验证器:
  • 任何设计考虑因素?既然这种形式是如此的痛苦,我们就不会重新设计它,并且以正确的方式去做。

我在想如果我创建一个单一的JavaScript函数,每次单击或更改表单字段时都会调用,这个JavaScript函数将被调用,它将检查所有100个表单字段。如果表单域可见,则启用相应的验证器,否则禁用。

您对这种方法有什么看法?

感谢您的时间和建议提前。

+1

一个有100个字段的窗体对我来说听起来有问题。也许尝试并将一些字段移到另一个表单。你有没有考虑过使用向导控制? – StevieB

+0

当重新阅读你的问题时,我想知道为什么人们把他们的生活变得如此复杂,同时保持整洁和干净的事情要容易得多并且收益更好。 – pid

回答

0

单从可用性来看,我强烈建议保持形式尽可能地短,并有形式的列表,以填补概述页面上。用户需要暂时停下来,并在中途保存工作。

有没有细分表格的原因(例如匿名用户的调查)。但是,如果用户被认证并被迫填写表格(通过法律或其他现实世界的约束),那么你应该有5种形式的20个字段左右。

一旦复杂性较低,你就可以更轻松地接近那些其他问题。

对于您的问题:

我会建议使用ASP.NET验证器。他们被拒绝进入两个世界:可用性(反应性)的客户端和安全性的服务器端。如果没有ASP.NET验证器,您将很难拥有相同的易用性和一致性。

正则表达式不应该在验证调试,但在一个单独的时刻(单元测试或测试吨串的一个简单的脚本),然后下降,在小测试之后。

在autopostback上:为什么?尽量避免它或使用AJAX。

你需要做很多工作才能遵循这些建议,但要确信它们是值得的。特别是对于新项目。