DetailsView 的数据验证方法
目前跟一个老板合作,考虑到网络各方面的因素,我们决定用Microsoft Visual Studio 2005 和 Microsoft SQL Server 2005 来开发项目。老板规定的时间很短,一个月就要搞定,而且差不多就我一个人在搞,郁闷哪。
再讲句废话,我对微软的这些开发工具很喜欢。
网上都说.Net 2.0 要比上个版本减少约70%的代码,呵呵,刚开始用的时候,由于思维固定在1.0,代码还是特别多哈。幸好做这个项目,才让我见识到2.0的强大,再加上微软免费提供的 ASP.NET AJAX 工具,开发起来感觉就一个字:爽!
今天用到GridView和DetailsView两个数据控件,刚开始不知道DetailsView不能直接添加验证(大家不要笑哈),把ObjectDataSource控件添加好并且Insert、Update、Delete、Select等实现方法添加完之后,真有一种特别的成就感!但头疼的问题也随之而来。:( 在DetailsView添加数据的时候,如果我什么都不输入报错,找不到哪里可以添加验证控件,于是Baidu,Google搜索解决方法,却没有一个好的,都要添加很多的代码。
这时我想微软做的东西应该没这么差吧,总有处理的方法。于是我从 ObjectDataSource 控件和 DetailsView 控件着手,找它们两个的属性和事件每个都尝试能否解决问题,终于老天不负有心人,在 ObjectDataSource 上找到一个事件:Inserting
我们在这个方法下面添加一个处理就能实现验证了。下面举个例子:
前提是必须为DetailsView控件的数据源指定为一个ObjectDataSource控件或其他DataSource控件。
(大家可以把GridView和DetailsView放到asp:UpdatePanel里面,避免太多的刷新哦)
我想这是最简单的验证方法了,希望所有和我遇到同样问题的朋友不要再走弯路了。
再讲句废话,我对微软的这些开发工具很喜欢。
网上都说.Net 2.0 要比上个版本减少约70%的代码,呵呵,刚开始用的时候,由于思维固定在1.0,代码还是特别多哈。幸好做这个项目,才让我见识到2.0的强大,再加上微软免费提供的 ASP.NET AJAX 工具,开发起来感觉就一个字:爽!
今天用到GridView和DetailsView两个数据控件,刚开始不知道DetailsView不能直接添加验证(大家不要笑哈),把ObjectDataSource控件添加好并且Insert、Update、Delete、Select等实现方法添加完之后,真有一种特别的成就感!但头疼的问题也随之而来。:( 在DetailsView添加数据的时候,如果我什么都不输入报错,找不到哪里可以添加验证控件,于是Baidu,Google搜索解决方法,却没有一个好的,都要添加很多的代码。
这时我想微软做的东西应该没这么差吧,总有处理的方法。于是我从 ObjectDataSource 控件和 DetailsView 控件着手,找它们两个的属性和事件每个都尝试能否解决问题,终于老天不负有心人,在 ObjectDataSource 上找到一个事件:Inserting
我们在这个方法下面添加一个处理就能实现验证了。下面举个例子:
1
protected void DataSource1_Inserting(object sender, ObjectDataSourceMethodEventArgs e)
{
2
string username= "";
3
// 假设username是DetailsView的第一个输入参数
4
if(e.InputParameters[0] != null)
5
username= e.InputParameters[0].ToString().Trim();
6
7
if(username== "" )
{
8
// ShowError 是自己定义输入错误的方法
9
ShowError("语言标识或语言描述不能为空!");
10
e.Cancel = true;
11
}
12
}



2

3

4

5

6

7



8

9

10

11

12

前提是必须为DetailsView控件的数据源指定为一个ObjectDataSource控件或其他DataSource控件。
(大家可以把GridView和DetailsView放到asp:UpdatePanel里面,避免太多的刷新哦)
我想这是最简单的验证方法了,希望所有和我遇到同样问题的朋友不要再走弯路了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?