GridView编辑删除操作

2023-10-30

 

  第一种:使用DataSource数据源中自带的编辑删除方法,这种不常用,在这里就不加说明了。

  第二种:使用GridView的三种事件:GridView1_RowEditing(编辑)、GridView1_RowUpdating(更新)、GridView1_RowCancelingEdit(取消编辑)。GridView1属性中将DataKeyNames的值设置为主键名,否则找不到索引,这个很重要哦。

该方法有2种操作,一种是不对绑定列转换为模板列,另外一种是转换为模板列。

 

这里先说不转换为模板列的情况;

 

首先;先对GridView进行数据绑定,不管用代码绑定还是DataSource绑定都可以。绑定好后,对GridView添加绑定列 和编辑列 (注意这里,添加好后不做任何改动,千万不要将它们转换为模板列),添加好后,将所要绑定的数据库表字段填入 属性中。

然后,分别激活上述提到的三种事件,然后添加代码:

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

{ //执行删除

string str = "delete from tb_hby where id='"+GridView1.DataKeys[e.RowIndex].Value.ToString()+"'";

    db.Delete(str); //db是操作类的实例,Delete是删除数据的方法

this.GridView1.DataBind();

}

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)

{//执行更新

    string cell1 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim();//第一列注意这种写法很重要

     string cell2 = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim();//第二列注意这种写法很重要

     string str = "update tb_hby set hby_title='" + cell1 + "',hby_Datetime='" + cell2 + "' where id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";

        db.Update(str);//db是操作类的实例,Update是更新数据的方法

        GridView1.EditIndex = -1;

        GView();

}

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)

 {//激活编辑按钮的事件

        this.GridView1.EditIndex = e.NewEditIndex;

        GView();

 }

protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)

    {//取消编辑状态的事件

        GridView1.EditIndex = -1;

        GView();

}

说明:此方法中,如果要求某个绑定列不做编辑,则在它的前台代码中加入ReadOnly=”true”即可。

此方法有一些缺点,比如对日期列进行格式化时,显示的时候是格式化后的日期,但是在编辑状态下仍然显示出日期的原貌,还有,某一列的字符太长时,不好对它进行字符截取。

在点击删除按钮的时候,如果需要一个弹出删除提示,则要将删除列转化为模板列,其代码如下:

<ItemTemplate>

  <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete" OnClientClick="return confirm('确定要删除吗?')"                     Text="删除"></asp:LinkButton>

</ItemTemplate>

也可以这样写:

在RowDataBind事件中:

if (e.Row.RowType == DataControlRowType.DataRow)

        {

            LinkButton lnkdelete = (LinkButton)e.Row.FindControl("lnkdelete");

            lnkdelete.Attributes.Add("onclick","return confirm('您确定要删除吗?')");

        }

如果不转化为模板列,这这样写:

if (e.Row.RowType == DataControlRowType.DataRow)

        {

            if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)

            {

                //((LinkButton)e.Row.Cells[7].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[0].Text + "\"吗?')");

                ((LinkButton)e.Row.Cells[7].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除吗?')");

            }

        }

完整代码如下:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowUpdating="GridView1_RowUpdating">

  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GridView编辑删除操作 的相关文章

  • 使用 scanf 读入 std::string

    正如标题所说 我很好奇是否有一种方法可以用 scanf 读取 C 字符串 我知道我可以读取每个字符并将其插入到应得的字符串中 但我想要类似的东西 string a scanf SOMETHING a gets 也不起作用 提前致谢 这可以工
  • 将字符串解析为结构变量

    我试图将字符串解析为其中包含不同变量的结构向量 这是我到目前为止所拥有的 但似乎不起作用 struct client string PhoneNumber string FirstName string LastName string Ag
  • strlen() 编译时优化

    前几天我发现你可以找到编译时strlen使用这样的东西 template
  • 在 C++ 代码中转换字符串

    我正在学习 C 并开发一个项目来练习 但现在我想在代码中转换一个变量 字符串 就像这样 用户有一个包含 C 代码的文件 但我希望我的程序读取该文件并插入将其写入代码中 如下所示 include
  • 如何在Java中对对象数组进行字段级别排序以进行等级比较?

    In Java Class StudentProgress String Name String Grade CTOR goes here main class main method StudentProgress arrayofObje
  • 如何使用文本输入来定位?

    我想使用 jQuery 通过文本框转到锚点 例如 我想使用以下形式
  • 从不带破折号的字符串创建 UUID

    如何从不带破折号的字符串创建 java util UUID 5231b533ba17478798a3f2df37de2aD7 gt uuid 5231b533 ba17 4787 98a3 f2df37de2aD7 tl dr java u
  • 如何仅在 PHP 中使用 str_replace() 删除文本一定次数?

    我试图从字符串中删除单词 John 一定次数 我在 php 手册上读到 str replace 除了第四个参数 count 所以我想可以用来指定应该删除多少个搜索实例 但事实似乎并非如此 因为以下情况 string Hello John h
  • 使用 str_replace 使其仅作用于第一个匹配项?

    我想要一个版本str replace 仅替换第一次出现的 search in the subject 有没有一个简单的解决方案 或者我需要一个 hacky 解决方案 虽然没有它的版本 但解决方案一点也不黑 pos strpos haysta
  • 字符串与 char[]

    我有一些来自 IBM 的幻灯片 名为 从 Java 代码到 Java 堆 了解应用程序的内存使用情况 http www ibm com developerworks library j codetoheap N101DC 也就是说 当我们使
  • 为数据库生成随机 ID

    我对一个项目有一个要求 我需要生成唯一的 ID ID 必须大写 我无法检查数据库以查看 ID 是否已被使用过 我们预计每个月都会有数百万条记录添加到数据库中 我在这里尝试过解决方案 PHP 如何生成随机的 唯一的字母数字字符串 https
  • Java byte[] 与 String 之间的转换

    为什么这个junit测试失败了 import org junit Assert import org junit Test import java io UnsupportedEncodingException public class T
  • R strsplit:根据字符分割,除非后面有特定字符

    假设我有一个字符串向量 例如 split these c File Location C Documents File Location Pete s Computer File Location 我想根据 分割该向量中的每个元素 除非后面
  • 清理 php 中的句子

    标题可能听起来很奇怪 但我有点尝试设置这个 preg replace 来处理文本区域的混乱写入者 它必须 如果有感叹号 则不应连续出现另一个感叹号 如果有 则逗号胜出 并且必须是 当昏迷前有一个 空格时 应将其减少到零 该句子不能以逗号开头
  • f.read 为空

    我在解释器中完成这一切 loc1 council council1 file1 open loc1 r 此时我可以执行 file1 read 并将文件的内容作为字符串打印到标准输出 但如果我添加这个 string1 file1 read 字
  • 如何使用 Sequel Pro 在导入过程中将字符串更改为日期?

    我正在尝试使用 Sequel Pro 将文件导入到 MySQL 表中 我知道我需要使用 STR TO DATE 但我无法找出正确的语法 我在每一行都收到一堆这样的错误 ERROR in row 1 You have an error in
  • 替换 XSLT 中的特殊字符

    我想从 XSLT 中的字符串中删除字母以外的字符 例如
  • 使用 TextBox 或 RichTextBox 显示图像文件中的原始数据?

    我的程序读取 DDS 图像文件并将其存储为字节数组 我希望能够以文本框形式向用户显示原始数据 因此首先使用以下代码将字节数组转换为字符串 string data System Text Encoding ASCII GetString by
  • C# 从带引号的字符串中删除分隔符

    我正在编写一个程序 必须从文本文件中带引号的字符串中删除分隔符 例如 Hello my name is world 必须 Hello my name is world 起初这听起来很简单 我认为是这样 但是您需要检测引号何时开始 何时结束
  • Grep 模式匹配用双引号括起来的小写字符串

    我在 grep 方面遇到了一些问题 我似乎无法弄清楚 我试图在一组源文件中搜索用双引号 C 字符串 括起来的小写单词的所有实例 使用 bash 和 gnu grep grep e a z cpp 没有给我任何匹配项 而 grep e a z

随机推荐

  • Matplotlib绘制图形模板

    文章目录 1 绘制散点图 2 绘制条形图 3 绘制横向条形图 4 并列和罗列条形图 4 1并列条形图 4 2罗列条形图 5 绘制扇形图 1 绘制散点图 添加三月份每天的最高气温 a 11 17 16 11 12 11 12 6 6 7 8
  • RISC-V相关的开源项目

    和RISC V相关的有如下一些开源项目 工具链 1 riscv tools 基本上所有RISC V相关工具链 仿真器 测试的宏项目 包含以下的项目 riscv gnu toolchain GNU工具链 riscv gcc GCC 编译器 r
  • 关于网络安全精英赛(初赛),我个人的知识盲点

    重点在扫盲 目录 一 奇奇怪怪的专业名词 二 各种杂乱的知识点 概括整理 2 1网络安全威胁 a 概念 b 类型 c 分类 系统漏洞危险 有害程序威胁 2 2 安全策略 物理安全策略 访问控制策略 安全性指标 安全等级 2 3密码分类和攻击
  • 文件上传漏洞基础/content-type绕过/黑名单绕过/

    目录 一 content type绕过 contenent type 源代码分析 绕过方式 尝试绕过 二 黑名单绕过 黑名单 代码分析 绕过方法 尝试绕过 一 content type绕过 contenent type 有些上传模块 会对h
  • shell 解析命令行参数

    解析方式一 手动解析 执行方式source test sh test sh bin bash while n 1 do case 1 in a account echo param a a 2 echo a shift 2 s server
  • 主成分分析(PCA)和基于核函数的主成分分析(KPCA)入门

    文章目录 1 前言 2 PCA的原理 2 1 什么是投影 2 2 投影后的方差 2 3 转化为求特征值的问题 2 4 符号的表示 3 KPCA的原理 4 PCA和KPCA在Python中的使用 4 1 PCA的使用 4 2 KPCA的使用
  • RAM(random access memory)的random是什么意思

    随机定义 这里的随机是指你可以直接访问任何内存地址 而不必先通过所有低位地址 这意味着您可以按任何顺序访问内存位置 而不仅仅是按 1 2 3 串行方式 第一台 PC 使用盒式磁带作为内存 那是笨拙和缓慢的 在基于 IC 的计算机开发的早期
  • Qt之QCheckBox

    简述 QCheckBox继承自QAbstractButton 它提供了一个带文本标签的复选框 QCheckBox 复选框 和QRadioButton 单选框 都是选项按钮 这是因为它们都可以在开 选中 或者关 未选中 之间切换 区别是对用户
  • 微型计算机三部分基本组成,微型计算机系统的组成

    描述 硬件部分 1 中央处理器 中央处理器 Central Processing Unit CPU 制作在一块集成电路芯片上 也称为微处理器 Micro Processor Unit MPU 计算机利用中央处理器处理数据 利用存储器来存储数
  • Tomcat 调优之从 Linux 内核源码层面看 Tcp backlog

    优质资源分享 学习路线指引 点击解锁 知识定位 人群定位 Python实战微信订餐小程序 进阶级 本课程是python flask 微信小程序的完美结合 从项目搭建到腾讯云部署上线 打造一个全栈订餐系统 Python量化交易实战 入门级 手
  • 【deepspeed】【训练】【交互】【wandb】训练过程中的wandb交互如何去除

    问题 gpt模型训练时 中间有询问输入账户 交互式的询问影响自动执行脚本 询问是这样的 解决办法 在脚本中设置环境变量 关闭wandb 如下图 其他 log中没有显示脚本的完整路径 顺着log中前面的脚本路径 找到了这个脚本 是和框架的其他
  • 28句话,句句触动你的心

    author skate time 2010 06 01 1 莎士比亚说 再好的东西都有失去的一天 再深的记忆也有淡忘的一天 再爱的人 也有远走的一天 再美的梦也有苏醒的一天 该放弃的决不挽留 该珍惜的决不放手 分手后不可以做朋友 因为彼此
  • 3.5 ICMP不可达报文的处理

    在三次握手阶段有两种情况TCP会收到ICMP 目的不可达 报文 1 client端通过connect系统调用发送SYN请求到server端后 server没有进程在相应的地址或端口处理请求 这时client端会收到ICMP不可达报文 2 c
  • Correct single, compatible version of XXX

    maven包冲突问题 问题分析 解决方法 问题分析 1 Failed to start component StandardEngine Catalina StandardHost localhost 2 Correct single co
  • 【浅析python 中__name__ = ‘__main__‘ 的作用】

    很多新手刚开始学习python的时候经常会看到python 中 name main 这样的代码 可能很多新手一开始学习的时候都比较疑惑 python 中 name main 的作用 到底干嘛的 有句话经典的概括了这段代码的意义 Make a
  • 智能学习

    智能学习 MATLAB实现TLBO教学学习优化算法的图像特征提取 目录 智能学习 MATLAB实现TLBO教学学习优化算法的图像特征提取 基本介绍 模型描述 程序设计 参考资料 基本介绍 MATLAB实现TLBO教学学习优化算法的图像特征提
  • python语法-MySQL(DDL数据定义)

    python语法 MySQL数据库 sql语言的分类 DDL数据定义 DML数据操作 DCL数据控制 DQL数据查询 SQL的语法特征 1 sql语言大小写不敏感 2 sql可以单行或者多行书写 最后以 号结束 3 sql支持注释 单行注释
  • 找不到mybatis的mybatis-config.xml配置文件

    初学mybatis出现过好几次找不到配置文件的问题 今天练习一个小项目又出现这个问题 排查了之前出现的错误 都没有解决问题 后来发现是自己粗心大意 把从mybatis官网中复制的调用生成mysqlsessionFactory的代码直接复制过
  • 【Ei检索】2022年计算语言学和自然语言处理国际会议(CLNLP 2022)

    2022年计算语言学和自然语言处理国际会议 CLNLP 2022 重要信息 会议网址 www clnlp org 会议时间 2022年12月16 18日 召开地点 中国北京 截稿时间 2022年10月31日 录用通知 投稿后2周内 收录检索
  • GridView编辑删除操作

    第一种 使用DataSource数据源中自带的编辑删除方法 这种不常用 在这里就不加说明了 第二种 使用GridView的三种事件 GridView1 RowEditing 编辑 GridView1 RowUpdating 更新 GridV