delete

Reapter 添加删除按钮

淺唱寂寞╮ 提交于 2020-02-07 06:21:50
repeater中的删除按钮和datagrid下的删除在实现上,还是有一定的区别的,由于repeater在客户端生成的html代码是非常干净的,所以特别受到众多web2.0网站的欢迎(不像datagrid生成的table),但是由于repeater集成了较少的功能,高可定制化,也带来了开发的难度。比如如果在datagrid下面要删除一行数据,那么仅仅是一个linkbutton,然后在datagrid delete command事件中编写删除代码再重新绑定来实现,但是在repeater中,却不能那样做,因为你几乎没有办法再那个事件中定位是哪行触发的删除事件。 方法一 采用的一个QueryString传参数的办法,在前台绑定的时候,采用如下代码: <td align="center" class="Login2"><a href =User.aspx?Delid=<%#Eval("id")%>>删除</a></td> 后台page_load()代码如下: protected void Page_Load(object sender, EventArgs e) { //注意数据绑定 DelItemByid(); } protected void DelItemByid() { if (Request.QueryString["Delid"] != null) {

C++11智能指针

萝らか妹 提交于 2020-02-07 04:17:56
C++11智能指针 为什么要使用智能指针: 智能指针的作用是管理一个指针,因为存在以下这种情况:申请的空间在函数结束时忘记释放,造成内存泄漏。使用智能指针可以很大程度上的避免这个问题,因为智能指针就是一个类,当超出了类的作用域是,类会自动调用析构函数,析构函数会自动释放资源。所以智能指针的作用原理就是在函数结束时自动释放内存空间,不需要手动释放内存空间。 1.auto_ptr (c++98的方案,cpp11已经抛弃) 采用所有权模式 auto_ptr< string> p1 (new string ("I reigned lonely as a cloud.”)); auto_ptr<string> p2; p2 = p1; //auto_ptr不会报错. 此时不会报错,p2剥夺了p1的所有权,但是当程序运行时访问p1将会报错。所以auto_ptr的缺点是:存在潜在的内存崩溃问题! 2.unique_ptr(替换auto_ptr) unique_ptr实现独占式拥有或严格拥有概念, 保证同一时间内只有一个智能指针可以指向该对象 。它对于避免资源泄露(例如“以new创建对象后因为发生异常而忘记调用delete”)特别有用 采用所有权模式,还是上面那个例子 unique_ptr<string> p3 (new string ("auto")); //#4 unique_ptr

js中的内部属性与delete操作符

瘦欲@ 提交于 2020-02-06 22:45:10
本文正式地址: http://www.xiabingbao.com/javascript/2015/08/03/javascript-delete-configurable 在讲解 Configurable 之前,我们首先来看一道面试题: a = 1; console.log( window.a ); // 1 console.log( delete window.a ); // true console.log( window.a ); // undefined var b = 2; console.log( window.b ); // 2 console.log( delete window.b ); // false console.log( window.b ); // 2 从上面的这道题可以看出两个的区别:在没有使用var声明变量时,使用delete关键词是可以进行删除的,再次获取时值就是undefined了;在使用var声明的变量,使用delete是不能删除的,再获取时值依然是2。 1. delete操作符 使用delete删除变量或属性时,删除成功返回true,否则返回false。如上面的例子中,delete无法删除变量a时,则返回false;而delete能成功删除变量b,则返回true。 除了上述的两种情况,还有其他的各种常用变量也有能被delete删除的

CTFLearn Web-Grid It

拥有回忆 提交于 2020-02-06 13:06:39
CTFLearn Web-Grid It 打开网页有两个页面:登录和注册,首先尝试注册一个 admin 用户,无果,猜测系统已有一个 admin 用户;尝试下用户名注入,无果。于是先注册一个普通账号,登录进去看看进一步的功能。 登录后主要可进行以下几个操作: 添加 point 删除 point 添加point时为 POST : https://web.ctflearn.com/grid/controller.php?action=add_point``` data: x=34&y=46 删除point时为``GET```: https://web.ctflearn.com/grid/controller.php?action=delete_point&point=O:5:%22point%22:3:{s:1:%22x%22;s:1:%222%22;s:1:%22y%22;s:1:%222%22;s:2:%22ID%22;s:7:%221095693%22or%221;} 经尝试,添加point提交的参数限定为数字,无法构造其他数据上传,故先放在一边。观察删除时提交的参数,发现 point 参数是一串编码后的 php序列化 对象,反序列化看看: __PHP_Incomplete_Class Object ( [ __PHP_Incomplete_Class_Name ] = >

C++知识笔记(一)

落花浮王杯 提交于 2020-02-06 07:24:57
一、引用 某个变量的引用,相当于该变量的一个别名 int n = 2; int &r= n; r = 4; cout<<r;//4 cout<<n;//4 定义引用时一定要将其初始化成引用某个变量 初始化后,它就一直引用该变量 ,不会再引用别的变量了 二、const 用法 1、用来定义常量 一旦定义不可修改 2、定义常量指针 注意常量指针的指向可以改,但是 不能通过常量指针修改其所指向的内容 ,编译会报错 不能把常量指针赋给非常量指针 ,反过来可以。“你要想指我这块地就自己过来指,我不给你”~ 如果非得做,可以用强制类型转换,嗯 函数参数为常量const指针时,可避免函数内部不小心改变参数指针所指地方的内容 3、定义常引用 不能通过常引用修改其所引用的变量 三、动态内存分配 在C语言中我们可以使用malloc函数对内存进行动态分配 在C++中我们可以使用new运算符来实现动态内存分配 对应分配,释放空间我们使用delete 指针; 一片空间不能被delete多次 举个栗子: int *p; *p = new int; *p = 5;//通过new出来的存储空间作修改 delete p; int *p = new int[100];//对于一块连续空间的内存分配就是动态分配数组 p[0] = 1; p[20] = 3; delete []p; 来源: CSDN 作者: 喜欢_月夜

Linux&&rsync远程同步

泪湿孤枕 提交于 2020-02-05 06:27:24
Linux&&rsync远程同步 基于SSH源的rsync实现(定时同步) 服务端部署步骤 客户端部署步骤 实现免密钥的rsync或ssh或scp 实现定时任务rsync同步 基于inotify的rsync实现(实时同步) Linux内核的inotify机制 服务端部署步骤 安装辅助工具inotify-tools 通过inotifywait触发rsync同步操作 rsync实现源服务器与客户端的数据同步 服务端部署步骤 客户端部署步骤 基于rsync源的免交互实现 rsync常见错误一 rsync常见错误二 一款快速增量备份工具 命令选项: -r:递归模式,包含目录及子目录中所有文件 -l:对于符号链接文件仍然复制为符号链接文件 -p:保留文件的权限标记 -t:保留文件的时间标记 -g:保留文件的属组标记(仅超级用户使用) -o:保留文件的属主标记(仅超级用户使用) -D:保留设备文件及其他特殊文件 备份操作类型: rsync源服务器: 指备份操作的远程服务器,也称备份源 备份源分为rsync源和SSH源两种 基于SSH源的rsync实现(定时同步) 服务端部署步骤 服务端准备好 存放数据的目录 和 需要备份的数据 即可。 客户端部署步骤 确认网络环境,客户端能够访问到服务端。 #创建 存放数据的目录 mkdir -p /var/www/html #从远处往本地同步:rsync

数据库之——触发器(学习笔记)

徘徊边缘 提交于 2020-02-04 20:08:52
一、触发器的定义: 触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,会激活促发其执行相应的操作。 二、创建与使用触发器: 2.1创建只有一个执行语句的触发器 例:创建一个trig_book触发器,该触发器在表t_book插入一条数据后,对表t_bookType的bookNum数量对应的bookTypeId会自动加1 create trigger trig_book after insert on t_book for each row update t_bookType set bookNum = bookNum+1 where new.bookTypeId = t_booktype.id; INSERT INTO t_book VALUES(NULL,'java好',100,'ke',1); t_book表: t_bookType表: 2.1创建有多个执行语句的触发器 例子: DELIMITER | 数据库语句 | DELIMITER;//告诉数据库这时一条语句内容 new old 触发的两个过度变量;new:新增一条语句的新增对象;old:删除一条语句的删除对象; DELIMITER | create trigger trig_book2 after delete on t_book

Spring AOP

和自甴很熟 提交于 2020-02-04 04:15:20
  在前面的文章中已经和大家分享过关于spring IOC的知识,已经通过他的实现机制。我们都知道spring的两大核心:AOP(面向切面)和IOC(控制反转),本篇我们就一起学习一下AOP的知识的。   这里分享一个问题?当我们软件开发完成后,需要给每一个方法添加操作日志,我们怎么操作呢?我想最简单的方法就是在每一个方法的开始前将我们的日志逻辑加入,当然这是最直接的一种方法,但是他的缺点也是很明细,如果我们的方法有很多,添加这个日志逻辑就需要很多的工作量,显然这是一种不可取的方式。如何更好的解决这个问题呢?spring很好的帮我们处理了这个难点,通过切面编程,我们可以在我们需要的切面添加相应的业务逻辑已达到我们需要的效果。   接下来开始我们的内容,AOP的实现借助于JAVA的动态代理知识,我先通过动态代理的方式为大家介绍一下AOP的实现原理,以便大家更好的理解。   每一个动态代理类都必须要实现InvocationHandler这个接口,并且每个代理类的实例都关联到了一个handler,当我们通过代理对象调用一个方法的时候,这个方法的调用就会被转发为由InvocationHandler这个接口的 invoke 方法来进行调用。我们来看看InvocationHandler这个接口的唯一一个方法 invoke 方法: Object invoke(Object proxy,

MySQL 5.7.13 常用基础命令

喜夏-厌秋 提交于 2020-02-04 00:17:36
MySQL 5.7.13 常用基础命令 前言 假设 用户命令 数据库命令 表命令(注意有无引号) 记录命令 前言 本文参考了 菜鸟教程MySQL 的部分内容,以及 @尘埃看世界的博客 的部分内容,再加上 度娘 还有 lewo的博客 部分内容和 我自己 实际学到的和实际运用且可用的MySQL5.7指令的内容整合。 大部分指令对于MySQL8+也是可以的。 假设 假设有用户 'root'@'%' 假设该用户有密码 12345678 假设该用户有数据库 chatroom 假设该数据库有表 existuser 假设该表有记录 (已删除id=2的记录) user_id username userpassword 1 wto 246810 3 kpl dj2602 4 lol 13579 5 dma 123fid 用户命令 注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string。 查询用户 查询所有用户 use mysql; select user, host from mysql.user; 查询用户(不重复) use mysql; select distinct user from mysql.user; 创建用户 create user '用户名'@'IP地址' identified by '密码'; (IP地址如果是本地就是

Android file.delete()与file.deleteOnExit()的区别

二次信任 提交于 2020-02-03 17:44:48
1.delete()方法: 当调用delete()方法时,直接删除文件,不管该文件是否存在,一经调用立即执行; 2.deleteOnExit()方法: 当调用deleteOnExit()方法时,只是相当于对deleteOnExit()作一个声明,当程序运行结束,JVM终止时才真正调用deleteOnExit()方法实现删除操作。即该方法是将删除的命令缓存了一下,到服务停止的时候再进行操作! 示例: @Test public void test ( ) throws IOException { File file = new File ( "E:" +File.separator+ "filetest" +File.separatorChar+ "HelloFile.txt" ) ; if ( file.exists ( )) { file.deleteOnExit ( ) ; file.createNewFile ( ) ; } else { logger.info ( "不存在该文件" ) ; } } 测试结果:在相应的位置HelloFile.txt 不存在(被删除掉了);因为此处的deleteOnExit()是在JVM退出的时候才执行的,因此相当于是先调用了createNewFile()再调用deleteOnExit(); @Test public void test ( )