在Visual Studio.Net2005(FrameWork.Net2.0)中有一些很好用的验证控件,我想大家都已经很熟悉了,而且在微软的MSDN和博客园中也有不少同僚们或深或浅地讲解过这些验证控件,那么我在这里就不过多阐述这些验证控件的原理和基本使用了,我要讲解的是什么呢?请先看遇到的问题!
这些验证控件和服务器控件(如:Button等)都有一个属性就是ValidationGroup,相信应该都很了解。
第一种常用情况:当您放入几个验证控件和一个服务器控件,而属性ValidationGroup的值都是空值时(即不对其分组验证),点击服务器某个控件(如:Button)就会执行所有验证控件的验证。而假如这个Web页中还有一个服务器控件Button时,属性ValidationGroup值也是空值,那么这两个服务器控件Button都是执行相同的验证,如果想让这两个服务器控件Button执行不同的验证,那么就是我们第二种常用情况了。
第二种常用情况:分组验证。【A】一个服务器Button(命名为Btn1)执行其中几个验证控件(比如有2个验证控件),【B】而另一个服务器Button(命名为Btn2)执行剩下来的几个验证控件(比如有3个验证控件),那么就需要对属性ValidationGroup进行设置:在【A】中的几个控件(服务器控件和验证控件)的ValidationGroup属性值设置为【vg1】,在【B】中的几个控件(服务器控件和验证控件)的ValidationGroup的属性设置为【vg2】,这样再分别点击两个Button就会执行不同的验证。然而再假如这个Web页中还有一个服务器控件Button(命名为Btn),我们想让这个Button执行所有验证(即执行Btn1的验证又执行Btn2的验证,共5个验证控件),此时我们该怎么办?这就是我们要讲解的内容第三种常用情况了。
第三种常用情况:即要分组又要统一的验证。接着第二种常用情况中的假设继续叙述,如果把Btn的ValidationGroup属性设置为空值那么是否能达到期望效果呢?答案是“不能”,如果ValidationGroup属性设置为空值,那么在Web页的整个验证过程中会解释成您不希望Btn参与验证,因此此时点击Btn会直接发送页面到后台,那对ValidationGroup属性起名时用【大组.小组】等类似的方法行吗(即Btn中ValidationGroup属性值是【大组】,而Btn1和Btn2中ValidationGroup属性值分别是【大组.小组1】和【大组.小组2】)?答案依旧是“不行”。那怎么办,没有简单可行的办法了吗?当然是有的了,对,就是用JavaScript控制。下面详细介绍一下过程和使用JavaScript达到目的时应该注意的事情。
我在期望达到第三种常用情况的效果时,也是在Google搜索、百度搜索、MSDN、CSDN和博客园中寻找了很久,不知道是网络中没有,还是大家不常用此种情况验证或者是都会使用了觉得没必要说这个(我很菜,别打我),或是我没有找到。本想找个讲解或是现成例子就不用自己研究了,看来是偷懒不得的。经过研究发现只要服务器控件Button有验证控件与其在一个组中,那么点击服务器控件Button后,先执行OnClientClick规定的JavaScript,再去执行验证操作,那么问题迎刃而解了。
解决问题的方法及源代码:
1、三个服务器控件Button和五个验证控件的ValidationGroup属性设置。
Btn vg OnClientClick属性值:Btnclick();
Btn1 vg1 OnClientClick属性值:Btn1click();
Btn2 vg2 OnClientClick属性值:Btn2click();
验证1 vg1
验证2 vg1
验证3 vg2
验证4 vg2
验证5 vg (也可设置为空值,但不能再是vg1或vg2,注意:必须要给Btn设置一个可执行的验证控件)
2、在Web页中增加一个<Script></Script>JS脚本。
1 <script type="text/javascript">
2 <!--
3 function Btn1click()
4 {
5 document.getElementById('<%=RequiredFieldValidator1.ClientID %>').validationGroup = 'vg1';
6 document.getElementById('<%=RegularExpressionValidator1.ClientID %>').validationGroup = 'vg1';
7 }
8
9 function Btn2click()
10 {
11 document.getElementById('<%=RequiredFieldValidator2.ClientID %>').validationGroup = 'vg2';
12 document.getElementById('<%=RegularExpressionValidator2.ClientID %>').validationGroup = 'vg2';
13 document.getElementById('<%=RegularExpressionValidator3.ClientID %>').validationGroup = 'vg2';
14 }
15
16 function Btnclick()
17 {
18 document.getElementById('<%=RequiredFieldValidator1.ClientID %>').validationGroup = 'vg';
19 document.getElementById('<%=RegularExpressionValidator1.ClientID %>').validationGroup = 'vg';
20 document.getElementById('<%=RequiredFieldValidator2.ClientID %>').validationGroup = 'vg';
21 document.getElementById('<%=RegularExpressionValidator2.ClientID %>').validationGroup = 'vg';
22 document.getElementById('<%=RegularExpressionValidator3.ClientID %>').validationGroup = 'vg';
23 }
24 // -->
25 </script>
这样我们就能达到我们期望的即要分组又要统一的验证。但这里需要注意的就是:每个参与验证的服务器控件Button在没有写任何JavaScript代码都必须分配至少一个验证控件能让其执行,否则您就算写了控制验证控件的JavaScript代码,这个服务器控件也不验证,切记!
原文出处:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9091
分享到:
相关推荐
在Visual Studio .NET中开发Web服务是现代软件工程中一个重要的环节,这主要得益于它强大的集成开发环境(IDE)和对.NET Framework的支持。Web服务是一种基于标准的、平台无关的方式,使得应用程序能够通过互联网...
《.NET Windows编程系列课程(4):Visual Studio 2005常用控件实战(中)》 在本节课程中,我们将深入探讨.NET框架下的Windows编程,特别是聚焦于Visual Studio 2005中引入的新控件及其在实际项目开发中的应用。Visual...
当创建一个Web服务方法时,Visual Studio .NET会自动生成相应的WSDL描述,使得其他应用能够通过SOAP消息调用这些服务。开发者可以通过修改WSDL文件来定制服务的接口。 6. **调用XML Web服务** 使用VB.NET或C#.NET...
【标题】:“asp.net商城系统网站源码,visual studio.net+数据库文件”指的是基于ASP.NET技术构建的一个电子商务网站系统,其开发环境为Visual Studio .NET,同时包含了与之配套的数据库文件。这样的系统通常用于...
### .NET平台与Visual Studio.Net开发工具新增功能介绍 #### 1. .NET框架介绍 ##### 1.1.1 .NET Framework基础结构 .NET Framework是一个由Microsoft开发的基础架构,用于构建和运行新一代的应用程序以及XML Web...
本篇文章将详细探讨如何在C++.NET环境下,利用Visual Studio .NET来实现对`DataGridView`中的数据列进行编辑。 首先,我们需要创建一个新的Windows Forms应用程序项目。在Visual Studio .NET中,选择“文件”>...
“VisualStudio2008创建”表明开发环境是微软的Visual Studio 2008,这是一个集成开发环境(IDE),提供了编写、调试和部署.NET应用程序的全套工具。 从压缩包的文件名“web2010-02-09仿百度博客”来看,这可能包含...
总之,这些源代码集合是一个宝贵的教育资源,对于提升开发者在Visual Studio和.NET框架下的Web开发技能大有裨益。无论是初学者还是经验丰富的开发者,都能从中受益,提升自己的编程能力和项目管理能力。
在.NET框架中,DataGridView控件是一个非常重要的组件,主要用于显示和操作数据表格。它提供了丰富的功能,包括数据的浏览、编辑、排序、过滤等。在VB.NET和C#等.NET语言中,使用DataGridView控件可以方便地构建用户...
- iForm_Controls_Test:这可能是一个测试项目,用于展示或验证控件的功能。 - iForm_Controls:这个文件可能包含了实际的控件类库或源代码。 从这个资源包中,开发者可以学习到如何在VB.NET 2005中创建和自定义...
标题"asp.net第三方验证控件"主要涉及的是如何在ASP.NET项目中使用非微软官方提供的验证工具。这些控件通常可以在不编写大量自定义代码的情况下增强用户体验,提高应用的安全性。例如,AutoAuthCode可能是其中一个第...
ASP.NET验证控件是开发Web应用程序时用于确保用户输入数据有效性和准确性的工具。这些控件简化了数据验证过程,可以在客户端(用户浏览器)或服务器端执行,提供了一种跨浏览器兼容的方式,使得验证功能独立于用户的...
FlexCell是一款优秀的国产表格控件,专为Visual Studio .NET设计,旨在提供高效、稳定且功能丰富的表格解决方案。它不仅适用于Visual Studio .NET环境,还兼容Visual FoxPro(VF)等其他开发平台,大大增强了开发者...
第 3 章深入探讨了 Visual Studio 2010 中代码片段的功能及其使用方法。 - **应用场景**:适用于快速编写常见代码模式,减少重复工作量。 ##### 1.4 模板系统 - **概述**:模板是创建新项目的起点,可以包含项目...
【标题】:“一个简单的 .NET 日历控件” 在.NET框架中,开发人员经常需要创建自定义用户界面元素,以满足特定项目需求。这个“一个简单的 .NET 日历控件”是一个示例,展示了如何扩展.NET的基础控件库,创建一个...
本篇将详细介绍如何使用Visual Studio 2005 和 C# 编程语言来创建一个.NET控件,并将其集成到WinCC V7.0中。 #### 开发.NET控件的示例程序 首先,我们需要准备一个开发环境,确保安装了Visual Studio 2005 和 ...
4. **母版页和内容页**:母版页是ASP.NET 2.0中的一个重要概念,它提供了一种统一网站布局的方法。通过使用母版页,开发者可以创建一个通用的头部、底部和侧边栏,然后在各个内容页中填充特定的内容。 5. **站点...
在Visual Studio 2005中,项目是代码和资源的集合,而解决方案则可以包含一个或多个项目。理解项目和解决方案的概念,有助于更好地组织和管理代码。 3. **代码编辑器**: 该版本的代码编辑器提供了语法高亮、自动...
在Visual C# .NET中创建平滑的进度条是一个涉及UI设计与编程技巧的过程,尤其当标准提供的ProgressBar控件无法满足对于平滑过渡效果的需求时。以下是对如何在Visual C# .NET中自定义并实现一个平滑进度条的详细解析...