当前位置: 首页 > news >正文

gridview自带编辑功能如何判断用户修改的值的合法性

在使用GridView的编辑功能更新值时,确保输入的值合法性是十分重要的。为了实现这一点,你可以在GridView的RowUpdating事件中加入代码来检查用户输入的值。如果发现输入的值不合法,你可以取消更新操作并向用户显示错误消息。下面是如何实现的步骤和示例代码


注意是RowUpdating事件不是RowUpdated事件,懂英文的应该能猜出它们的区别,这里不展开细讲

NewValues属性是一个字典集合(Dictionary),它包含了用户在 GridView 编辑模式下修改后提交的新值。这个字典的键(Key)是数据源中的字段名,值(Value)是用户输入的新数据

如果输入的值不符合预期或不合法,你可以通过设置e.Cancel = true来取消更新操作

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) {//假设用户可能修改的字段为scoreint score = int.Parse(e.NewValues["score"].ToString());//NewValues中包含所有用户修改后的新值,通过中括号访问到具体字段的值if(score < 0 || score > 100) {//然后就能进行合法判断e.Cancel = true;//Cancle属性的真值决定了本次编辑事件是否取消Response.Write("<script language=javascript> alert('该分数不合理,请重新评分!');</script>");//给出相应的提示}
}


在处理 GridViewUpdateEventArgs 的 NewValues 集合时,你可能需要判断用户修改的值是否为空或为空字符串,特别是在处理表单输入和更新数据库记录时。这里的“空”可能包括 null、空字符串("")或仅包含空白字符(如空格)的字符串。下面是如何进行这种判断的示例代码:

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) {object newScoreObj = e.NewValues["score"];if(newScoreObj == null || string.IsNullOrWhiteSpace(newScoreObj.ToString())) {// 使用系统方法进行判空操作e.Cancel = true;Response.Write("<script language=javascript> alert('请给出分数!');</script>");//给出相应的提示}else {string sco_text = e.NewValues["score"].ToString();int score = int.Parse(sco_text);//NewValues中包含所有用户修改后的新值,通过中括号访问到具体字段的值if (score < 0 || score > 100) {//然后就能进行合法判断e.Cancel = true;//Cancle属性的真值决定了本次编辑事件是否取消Response.Write("<script language=javascript> alert('该分数不合理,请重新评分!');</script>");//给出相应的提示}}}

注意事项:

  • 在这个示例中,使用了 string.IsNullOrWhiteSpace 方法来检查用户提交的值是否为 null、空字符串或仅包含空白字符的字符串。这是一个比较全面的空值检查方法。
  • 通过 e.NewValues["Name"] 获取的对象类型是 object,所以在传递给 string.IsNullOrWhiteSpace 方法之前,需要调用 ToString() 方法进行转换。同时,为了避免当 e.NewValues["Name"] 为 null 时直接调用 ToString() 抛出异常,代码中首先进行了 null 检查。(短路或操作)
  • 设置 e.Cancel = true; 可以取消更新操作。如果检测到用户输入了不符合要求的值(例如此处的空值),并且你不希望继续执行更新操作,这是一个非常有用的方法。取消操作后,你可以添加自己的逻辑来向用户显示警告或错误信息,指导用户进行正确操作。
  • 在实际应用中,根据你的业务需求,对于空值的处理逻辑可能不同。例如,某些情况下你可能允许空值,并将其转换为数据库中的 NULL 值,或者给予某个默认值。

相关文章:

gridview自带编辑功能如何判断用户修改的值的合法性

在使用GridView的编辑功能更新值时&#xff0c;确保输入的值合法性是十分重要的。为了实现这一点&#xff0c;你可以在GridView的RowUpdating事件中加入代码来检查用户输入的值。如果发现输入的值不合法&#xff0c;你可以取消更新操作并向用户显示错误消息。下面是如何实现的步…...

设计模式-结构型-06-桥接模式

1、传统方式解决手机操作问题 现在对不同手机类型的不同品牌实现操作编程&#xff08;比如&#xff1a;开机、关机、上网&#xff0c;打电话等&#xff09;&#xff0c;如图&#xff1a; UML 类图 问题分析 扩展性问题&#xff08;类爆炸&#xff09;&#xff1a;如果我们再…...

安泰电压放大器的选型原则是什么

电压放大器是电子电路中常用的一种器件&#xff0c;主要用于放大输入电压信号。在选型电压放大器时&#xff0c;需要考虑以下几个原则。 根据应用需求确定放大倍数。放大倍数是指输出电压与输入电压之间的倍数关系&#xff0c;也称为增益。不同的应用场景对放大倍数的要求不同&…...

方法分享 |公网IP怎么指定非433端口实现https访问

公网IP可以通过指定非443端口实现HTTPS访问。在网络配置中&#xff0c;虽然HTTPS协议默认使用443端口&#xff0c;但没有规定不能在其他端口上实施HTTPS服务。使用非标准端口进行HTTPS通信需要正确配置服务器和SSL证书&#xff0c;并确保客户端能够连接到指定的端口。下面说明如…...

vue实现拖拽元素;vuedraggable拖拽插件

效果图&#xff1a; 中文文档 以下代码可直接复制使用 安装依赖 npm i -S vuedraggable使用 <template><div class"container"><div>使用flex竖轴布局 <br>handle".mover" 可拖拽的class类名 <br>filter".forbid&qu…...

Javascript介绍

Javascript 定义&#xff1a;一门简单的浏览器可解析的语言 作用&#xff1a;与HTML相结合使用&#xff0c;使我们的网页变得更加酷炫 发展史&#xff1a; 1.1992年&#xff0c;Nombase公司开发出来&#xff0c;校验表单&#xff0c;起名c--&#xff0c;后来更名为&#…...

毕业答辩PPT:如何在短时间内高效准备?

提起PPT&#xff0c;大家的第一反应就是痛苦。经常接触PPT的学生党和打工人&#xff0c;光看到这3个字母&#xff0c;就已经开始头痛了&#xff1a; 1、PPT内容框架与文案挑战重重&#xff0c;任务艰巨&#xff0c;耗费大量精力。 2、PPT的排版技能要求高&#xff0c;并非易事…...

树结构与算法-杨辉三角形的两种实现

什么是杨辉三角形 本文旨在讨论普通杨辉三角形的两种实现方式&#xff1a;迭代法和递归法。我们不详细讲解杨辉三角形的数学问题&#xff0c;只研究其代码实现。 杨辉三角形大致如下图&#xff1a; 杨辉三角形的规律 通过对杨辉三角形的图形分析&#xff0c;我们可以看到这几点…...

【机器学习】智能创意工厂:机器学习驱动的AIGC,打造未来内容新生态

&#x1f680;时空传送门 &#x1f50d;机器学习在AIGC中的核心技术&#x1f4d5;深度学习&#x1f388;生成对抗网络&#xff08;GANs&#xff09; &#x1f680;机器学习在AIGC中的具体应用&#x1f340;图像生成与编辑⭐文本生成与对话系统&#x1f320;音频生成与语音合成 …...

Python - 一个恶意脚本

Python - 恶意脚本 使用此脚本或修改前请注意以下几点&#xff1a; 系统资源&#xff1a;大量模拟键盘和鼠标事件可能会占用大量系统资源&#xff0c;会导致其他应用程序运行缓慢或崩溃。 隐私和安全&#xff1a;如果此脚本在未经用户同意的情况下运行&#xff0c;它可能侵犯…...

SFNC —— 采集控制(四)

系列文章目录 SFNC —— 标准特征命名约定&#xff08;一&#xff09; SFNC —— 设备控制&#xff08;二&#xff09; SFNC —— 图像格式控制&#xff08;三&#xff09; SFNC —— 采集控制&#xff08;四&#xff09; 文章目录 系列文章目录5、采集控制&#xff08;Acquisi…...

AUTOSAR学习

文章目录 前言1. 什么是autosar&#xff1f;1.1 AP&#xff08;自适应平台autosar&#xff09;1.2 CP&#xff08;经典平台autosar)1.3 我的疑问 2. 为什么会有autosar3.autosar的架构3.1 CP的架构3.1.1 应用软件层3.1.2 运行时环境3.1.3 基础软件层 3.2 AP的架构 4. 参考资料 …...

区区微服务,何足挂齿?

背景 睿哥前天吩咐我去了解一下微服务&#xff0c;我本来想周末看的&#xff0c;结果周末没带电脑&#xff0c;所以只能周一看了。刚刚我就去慕课网看了相关的视频&#xff0c;然后写一篇文章总结一下。这篇文章算是基础理论版&#xff0c;等我之后进行更多的实践&#xff0c;…...

数据结构 ->反转链表

工作原理 初始化&#xff1a; cur 指向传入的节点 node&#xff0c;即链表的头节点。prv 初始化为 NULL&#xff0c;用于存储当前节点的前一个节点。 循环反转&#xff1a; 在 while 循环中&#xff0c;当 cur 不为空时执行循环体。保存当前节点的下一个节点&#xff1a;使用 t…...

Unity基础(一)unity的下载与安装

目录 一:下载与安装 1.官网下载地址 2.推荐直接下载UnityHub 3.选择编辑器版本(推荐长期支持版) 4.在UnityHub安装选择相应的模块 二:创建项目 简介: Unity 是一款广泛应用的跨平台游戏开发引擎。 它具有以下显著特点&#xff1a; 强大的跨平台能力&#xff1a;能将开发的游…...

TOP10!YashanDB斩获广东省优秀信创产品与解决方案双料荣誉

近日&#xff0c;2024广东软件风云榜结果出炉&#xff0c;表彰为广东软件产业和数字经济、新型工业化发展作出突出贡献的企业、企业家、优秀产品等。深算院崖山数据库系统 YashanDB荣获广东省“2024年优秀信息技术应用创新产品TOP10”和“2024年优秀信息技术应用创新行业应用解…...

基于深度学习网络的USB摄像头实时视频采集与手势检测识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 系统架构 4.2 GoogLeNet网络简介 4.3 手势检测 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 训练过程如下&#xff1a; 将摄像头对准手势&#xff0c;然后进行…...

有趣且重要的JS知识合集(22)树相关的算法

0、举例&#xff1a;树形结构原始数据 1、序列化树形结构 /*** 平铺序列化树形结构* param tree 树形结构* param result 转化后一维数组* returns Array<TreeNode>*/ export function flattenTree(tree, result []) {if (tree.length 0) {return result}for (const …...

使用 Let’s Encrypt 生成免费 SSL 证书

使用 Let’s Encrypt 生成证书是一个简单且免费的方式&#xff0c;可以通过 Certbot 工具来实现。以下是详细的步骤说明&#xff1a; 1. 安装 Certbot 根据你的操作系统&#xff0c;安装 Certbot。以下以 Ubuntu 为例&#xff1a; sudo apt update sudo apt install certbot…...

【电脑小白】装机从认识电脑部件开始

前言 在 B 站上刷到了一个很牛逼的电脑装机视频&#xff0c;很适合电脑小白学习&#xff0c;故用文本记录下。 推荐对组装台式电脑有兴趣的小伙伴都去看看这个视频&#xff1a; 原视频链接&#xff1a;【装机教程】全网最好的装机教程&#xff0c;没有之一_哔哩哔哩_bilibil…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...