我有一个ASP.NET网页表单,其中包含已禁用的验证程序。我想仅在单击“提交”按钮后启用验证器,并且基于控件是否可见。
这是我的功能:
protected void Submit_Click(object sender, System.EventArgs e)
{
if (ddlSite.Visible){
rfvSite.Enabled = true;
base.Validate();
} else {
rfvSite.Enabled = false;
}
上面的代码工作正常。但现在我想检查页面是否有效。如果页面有效,那么我想处理表单。我不知道该怎么做。
答案 0 :(得分:2)
您有多种选择:
尝试将您的控件拆分为多个validation groups,这只会在提交时验证特定组中的控件。
编写自己的自定义验证程序。自定义验证器可以声明客户端验证功能和服务器验证功能。创建自定义验证程序为well-documented。
正如StevieB所提到的,如果隐藏控件服务器端,则不会触发验证器。如果隐藏它们的决定是在客户端进行的,那就更难了。
挂钩客户端验证功能并操纵验证器。这可能很困难,可能需要更改内部ASP.Net脚本。有时,这是使Web表单验证执行您需要的唯一方法。有关扩展/修改验证器行为的示例,请参阅this question。
由于我是asp.Net c#的新手,我很想知道有人可以给我一个 示例或想法如何实现这一目标?
考虑使用ASP.Net MVC而不是Web表单。 Web表单模型已经过时了,并且会像这样“对战”。如果你刚刚开始,我建议至少调查MVC,看看你的时间是否更好。
答案 1 :(得分:0)
由于这个原因,创建了很多jquery插件: http://tinyurl.com/qetudk8
答案 2 :(得分:0)
我相信如果您添加
if(Page.IsValid) {
// Code here
}
在提交表单的按钮周围,页面应触发验证错误。