我之前对RequiredFieldValidator 和类似的印象是它们向您显示错误标签并将Page.IsValid 设置为false,仅此而已。这意味着他们将剩下的任务(防止使用错误的输入数据)留给您。但是今天我意识到如果您使用 DetailsView 将新记录插入数据库,并使用验证器检查 DetailsView 内的 TextBox,它们会自动阻止数据库更新。
我想知道这是如何在幕后实现的。我猜它在 Validator.PreRender 事件中中止了页面生命周期,因此无法达到后期的数据库连接?我可能是错的。
我正在尝试使用 Reflector 进入 RequiredFieldValidator 以查看它是如何实现的,但我真的不知道在哪里看。有人可以提供一些提示吗?