asp.net操作GridView添删改查的两种方法 及 光棒效果
这部份小内容很想写下来了,因为是基础中的基础,但是近来用的比较少,又温习了一篇,发现有点陌生了,所以,还是写一下吧。
方法一:使用Gridview本身自带的事件处理,代码如下(注意:每次操作完都得重新绑定,且删除列要转为模板列):
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ShowCategories();
ShowProducts();
}
} private void ShowProducts()
{
DataTable dt = NorthWind.DBHelp.GetTable("SELECT Product.产品ID, Product.产品名称, Supply.公司名称, Supply.城市, Category.类别名称, Category.图片, Product.单位数量, Product.单价, Product.库存量, Product.中止 FROM Category INNER JOIN Product ON Category.类别ID = Product.类别ID INNER JOIN Supply ON Product.供应商ID = Supply.供应商ID where Product.类别ID="+int.Parse(this.DropDownList1.SelectedValue));
this.GridView1.DataSource = dt;
this.GridView1.DataKeyNames = new string[]{"产品ID"};//设置数据操作的主键列
this.GridView1.DataBind();
} private void ShowCategories()
{
DataTable dt = NorthWind.DBHelp.GetTable("select * from Category");
this.DropDownList1.DataSource = dt;
this.DropDownList1.DataTextField = "类别名称";
this.DropDownList1.DataValueField = "类别ID";
this.DropDownList1.DataBind();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
ShowProducts();
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{ }
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
//将当前要编辑的行的索引告诉GridView
this.GridView1.EditIndex = e.NewEditIndex;
ShowProducts();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//更新数据库
decimal price = decimal.Parse(((TextBox)this.GridView1.Rows[e.RowIndex].Cells[3].FindControl("TextBox1")).Text);
int productid = int.Parse(this.GridView1.DataKeys[e.RowIndex].Value.ToString());//获取当前行的主键
//更新到数据库
NorthWind.DBHelp.ExecuteNoQuery("update Product set 单价="+price+" where 产品ID="+productid);
//重新绑定
this.GridView1.EditIndex = -1;
ShowProducts();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
this.GridView1.EditIndex = -1;
ShowProducts();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//删除数据
int productid = int.Parse(this.GridView1.DataKeys[e.RowIndex].Value.ToString());//获取当前行的主键
//更新到数据库
NorthWind.DBHelp.ExecuteNoQuery("delete from Product where 产品ID=" + productid);
//重新绑定
this.GridView1.EditIndex = -1;
ShowProducts();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//当我们对数据源中的每一行进行数据绑定时触发的事件
if (e.Row.RowType == DataControlRowType.DataRow)//判断绑定时候该行的状态时数据行还是其他类型的模板
{
//添加客户端确认
LinkButton lnkDelete = (LinkButton)e.Row.Cells[10].FindControl("lnkDelete");
lnkDelete.Attributes.Add("onclick", "return confirm('你确认删除吗?')");
//光棒效果
e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#ff66cc';");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
}
}
protected void chkSelectAll_CheckedChanged(object sender, EventArgs e)
{
//获取全选的复选框
CheckBox chkSelectAll = (CheckBox)sender;
//获取每一行的复选框
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
CheckBox chkSelect = (CheckBox)this.GridView1.Rows[i].Cells[11].FindControl("chkSelect");
//修改状态
chkSelect.Checked = chkSelectAll.Checked;
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
//告诉GridView当前显示的数据是第几页的数据
this.GridView1.PageIndex= e.NewPageIndex;
ShowProducts();
}
asp.net操作GridView添删改查的两种方法 及 光棒效果的更多相关文章
- GridView 鼠标经过时变色两种方法
第一种: 新建一个js文件 并引用 <script src="jquery.js" type="text/javascript"></scri ...
- 一、winForm-DataGridView操作——控件绑定事件的两种方法
在winForm窗体中绑定(注册)事件的方法有两种: 一.绑定事件 双击控件,即进入.cs的代码编辑页面,会出现 类似于“ private void 控件名称_Click(object sender, ...
- vue通过v-for渲染的列表,可以单独操作的其中的列表的两种方法
如图,三个标题分别有多个子元素.通过点击三个标题分别控制显示和隐藏.上代码 第一种情况:点击 青1,其所有的标题下的列表全部隐藏,也就是只有一个标题的会显示子元素 <div class=&quo ...
- 推断php操作mysql(添删改查)是否成功
近期在使用CI框架 , 可是里面的数据库操作没有ThinkPhp方便 , 不知道数据库操作的反馈信息 , 仅仅好借助原生方法来推断是否操作数据库成功 推断php操作mysql(添删改查)是否成功,主要 ...
- 【ASP.NET MVC系列】浅谈jqGrid 在ASP.NET MVC中增删改查
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 2. MongoDB基本操作 —— 用Mongo.exe操作数据库增删改查
一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...
- 使用python操作XML增删改查
使用python操作XML增删改查 什么是XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输 ...
- js操作indexedDB增删改查示例
js操作indexedDB增删改查示例 if ('indexedDB' in window) { // 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本 var r ...
- MySQL数据分析(16)— 数据操作之增删改查
前面我们说学习MySQL要从三个层面,四大逻辑来学,三个层面就是库层面,表层面和数据层面对吧,数据库里放数据表,表里放数据是吧,大家可以回忆PPT中jacky的这图,我们已经学完了库层面和表层面,从本 ...
随机推荐
- python反序列化研究学习
零.补充: 补充于2018-02-08,之前研究时候有一个疑惑,python的序列化成二进制,打web服务怎么传这个二进制对象呢,今天请教了身边大神(传说的九零后黑客代表),可以使用base64传输. ...
- 【BZOJ3781、2038】莫队算法2水题
[BZOJ3781]小B的询问 题意:有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数 ...
- android 开发 - 结束所有activity
每一个activity都有自己的生命周期,被打开了最终就要被关闭. 四种结束当前的activity方法 //关闭当前activity方法一 finish(); //关闭当前界面方法二 android. ...
- tomcat自动加载class
转载 tomcat自动加载改变的class文件(无需重启tomcat) http://blog.csdn.net/miraclestar/article/details/6434164 不重启Tom ...
- Jwt在Java项目中的简单实际应用
1.什么是jwt 双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信 ...
- JSP中的内置对象和Struts中的Web资源的详解
JSP中的内置对象有如下几种: request :继承于HttpServletRequest, HttpServletRequest继承ServletRequest, 获得的Request对象的方法: ...
- Ubuntu 16.04修改配置静态IP和DNS
Ubuntu 16.04修改配置静态IP和DNS 1.修改interfaces 文件 sudo gedit /etc/network/interfaces 2.添加 例如: auto enp0s25 ...
- Hadoop伪分布安装详解(二)
目录: 1.修改主机名和用户名 2.配置静态IP地址 3.配置SSH无密码连接 4.安装JDK1.7 5.配置Hadoop 6.安装Mysql 7.安装Hive 8.安装Hbase 9.安装Sqoop ...
- ubuntu安装wine的方法
使用命令行安装: 1.打开终端,使用命令:sudo apt-get install wine 2.它可能会出现选择哪个版本的安装,develop是开发版本,stable是稳定版本. 通常我们选择sta ...
- Java 之 JUC
1. JUC 简介 在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类, 用于定义类似于线程的自定义子系统,包括线程池,异 ...