这是示例页面的格式:
*Validation Summary*
Label : [input]
Label : [input]
###############
# RadGrid #
###############
###############
# RadGrid #
###############
Label : [input]
[save button]
第一个版本:
- 当我按下保存按钮时,整个页面会重新加载。验证摘要填充了错误(或不填充),错误的输入显示为红色。
- 当我打开 RadGrid(自定义编辑模板)时,整个页面重新加载并且保存按钮被停用。
- 问题:当我们打开一个网格时,整个页面被重新加载,它是呃......不是客户想要的......?
第二版:
- 我们在 radgrids 周围放置了 radAjaxPanel,因此当您打开一个网格时,只有该网格会重新加载。问题:保存按钮不再被停用。
- 如果我点击保存按钮,整个页面仍然会重新加载。
第三版:
- 我们向保存按钮添加了一个 radAjaxPanel,并在打开或关闭 RadGrid 时添加了一行(见脚注)以重新加载此 radAjaxPanel
- 现在按钮已正确激活/停用。
- 问题:当我按下保存按钮时,只有按钮重新加载,如果某些字段有错误,它们不会变成红色。验证摘要仍然有效。
第 4 版:
- 添加了一行(脚注)以在按下保存按钮时重新加载整个页面。
- 现在错误的字段变为红色
- 问题:这个额外的回发使验证摘要消失。
那么,关于如何让所有这些选项协同工作的任何想法?
最简单的方法是说服客户放弃 radAjaxPanel(因为我觉得我们无论如何都错误地使用了它们,而且它带来的优势很小)。
整个项目架构有些复杂(我们用 webforms模拟.net mvc(!)),我觉得代码只会给问题增加混乱,但如果您认为某些特定部分需要更多细节/代码,请随时询问.
MainRadAjaxPanel.ResponseScripts.Add(string.Format("$find('{0}').ajaxRequest();", MainRadAjaxPanel.ClientID));