【发布时间】:2020-08-21 08:49:49
【问题描述】:
我有一个带有 2 个更新面板的网络表单页面:udpGrid 用于网格视图,udpFormViews 带有一个 ajaxToolkit:TabContainer 围绕 3 个选项卡,用于从网格中插入和编辑记录,以及一个带有自己的项目模板的转发器,用于编辑相关数据到主记录。编辑选项卡在 Page_Load 上不可见。在插入和编辑选项卡内驻留相同的用户控件,其中包含一个 Formview。 formview默认设置为插入模式,但有一个插入和编辑项目模板,带有一个用于保存/更新/取消按钮的页脚模板,并且在编辑时用户控件的第二个实例设置为编辑模式并加载并显示。它还包含一个包含插入更新和取消命令按钮的页脚模板,以触发 FormView 的本机插入/更新/取消事件。插入 FormView UserControl 上的 RequiredField valdators 从开始和插入后都可以正常工作,但是一旦我进行回发以显示编辑 FormView 用户控件或第三个选项卡上的中继器(与包含 UserControl 的用户控件无关),RequiredFieldValidators在插入表单视图上完全停止工作,甚至在验证它的插入验证组的代码中也返回有效,而 requiredField 在代码中显示空文本。
由于某种原因,插入 FormView UserControl 在任何回发后完全失去其验证逻辑,但它是自己的插入,无论是否存在 UserControl 的第二个实例。我没有加载或更改插入 Formview UserControl 的任何内容,我可以继续插入而不会破坏验证,但只要在它之外发生回发,它就会中断。甚至其他 UpdatePanel (udpGrid) 上的更新也会破坏它,我无法使用 RequiredFieldValidators 在插入 UserControl 客户端或服务器端测试验证。 Edit UserControl 仍然会触发其验证器,但除了在屏幕上显示错误文本外,它会忽略它并仍然更新记录,同时也忽略服务器端的 edit-validationgroup 验证。
有人知道发生了什么吗?似乎将这些 Formvies 放在 UserControls 中会破坏一些东西,而在其他页面上直接使用它不会导致任何问题?
更新:我发现当RequiredFieldValidation 被破坏时,我仍然可以通过填充和清空客户端的文本框来触发错误文本。客户端和服务器端的页面验证无法正常工作的问题仍然存在
【问题讨论】:
标签: c# user-controls updatepanel formview requiredfieldvalidator