我正在创建一个Web表单,其中有大约12-15个输入字段...
您可以查看屏幕here http://img9.imageshack.us/img9/2951/image001um.jpg和here http://www.freeimagehosting.net/uploads/f9f4491598.jpg
请求是这样的,根据用户在Gridview和DropDown列表中选择的数据,需要显示相应的Textboxes和CheckBoxes。
有时条件非常直接,例如当DDL值为“ABC”时,只从用户那里获得付款金额。
有时它们如此复杂......如果DDL是“DEF”并且选择的GPMS值在1000-2000之间,则计算允许,付费等的值(使用某些公式)并且焦点应该指向Page No字段,其他字段打开,用户想编辑...大约有10-15个这样的条件。
由于这是通过敏捷完成的,所以条件被添加,当它感觉合适时(更改事件上的DDL,选择更改事件时的GridView等等)。完成后,现在我看到代码已经成为一个很大的困难,正在无法管理......
现在,我打算清除这一点......从您的经验来看,您认为最好的方法就是解决这个问题。将来有可能增加更多这样的条件......
如果您需要更多信息,请告诉我。我目前正在使用C#.Net WindowsForms
开发此应用程序编辑:目前只有三个项目(数据网格,DDL,OverrideAmt CheckBox)改变了其他字段的行为......
几乎所有条件都会介于我提到的两种情况之间...... 大多数情况下,它们属于“启用/禁用”..“设置值”......和“更改焦点” 或这些的任何组合。
答案 0 :(得分:0)
编写包含所有评估逻辑的单一程序 即评估所有个别状态,并在程序中显示/隐藏适当的控制。
现在,只要有任何变更事件,就调用此程序 这需要您重新评估是否显示/隐藏任何控件。
不要在此过程外显示/隐藏任何控件。
将来可以轻松纳入任何其他验证检查 通过在此过程中添加其他检查。
改善此程序的表现:
[1]向过程添加参数(int / string)
[2]从不同对象的不同事件调用时,在此参数中传递不同的值
[3]在程序中,根据参数的值,您可以确定触发此重新评估的对象(以及哪个事件)。
因此,您只能评估那些可能依赖于此特定对象中此特定更改的条件。这样,重新评估开销就减少到了最低限度。