gridview的编辑,更新,取消,自动分页等
gridview编辑列,把左下角的"自动生成字段"的复选框的勾去掉
添加boundfield(绑定列)将其datafield设置为productname,headertext设置为"产品名"
再添加commadfield下的编辑,更新,取消
确定
.cs文件按中编写一绑定gridview数据的方法:
public void bind()
{
SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=;database=Northwind");
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter("select * from products", conn);
DataSet ds = new DataSet();
sda.Fill(ds);
conn.Close();
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
}
在load事件中调用bind()方法.......
将gridview的datakeynames设置为productid(和datalist的datakeyfield有点像)
1.编辑:
找到gridview的RowEditing事件:
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex; //编辑的行设置为鼠标作用的当前行
bind(); //一定要进行绑定
}
2.更新:找到gridview的RowUpdating事件:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
{
int i = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value); //关键代码:取当前选中行产品的id
string productname = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text; //关键代码:取编辑框中产品名(改过后的名称),Rows[e.RowIndex].Cells[0].Controls[0]表示当前行,第一列(cell[0])第一个控件(control[0])
SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=;database=Northwind");
conn.Open();
string strSQL = "update products set productname='" + productname + "'where productid='" + i + "'";
SqlCommand cmd = new SqlCommand(strSQL, conn);
int h=cmd.ExecuteNonQuery();
if (h > 0)
{
Response.Write("<script>alert('success')</script>");
GridView1.EditIndex = -1; //一定要设置,否则还处于编辑状态
}
else
Response.Write("<script>alert('success')</script>");
bind();
}
}
3.取消:找到gridview的RowCancelingEdit事件:
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
bind(); //最后还要重新绑定,否则还是呈现"更新"和"取消"
}
4.自动分页:
将gridview的allowpaging设置为true,pagesize自己定义如5
找到gridview的PageIndexChanging事件:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
bind(); //一定要重新绑定,否则是没效果的
}
5.gridview的rowcommand事件中取主键://模板列中放一button并把他的commandname设置为show
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "show")
{
//GridViewRow drv=((GridViewRow)(((Button)(e.CommandSource)).Parent.Parent));
//string index = drv.RowIndex.ToString(); //行号
//string admin_id = GridView1.DataKeys[Convert.ToInt32(index)].Value.ToString(); //主键
//Response.Write(index+";"+admin_id);
//下面的方法需要在前台把button的 CommandArgument ='<%# Eval("admin_id")%>'
int admin_id=Convert.ToInt32(e.CommandArgument.ToString()); //主键
int index = Convert.ToInt32(((GridViewRow)(((Button)(e.CommandSource)).Parent.Parent)).RowIndex); //行号
Response.Write(admin_id+";"+index);
}
}
gridview的编辑,更新,取消,自动分页等的更多相关文章
- GridView编辑、取消按钮自定义控件
这个需求来自于论坛一位坛友提出的问题,他希望能够自定义编辑.取消按钮,而不是用GridView自带的编辑和取消.这里只当抛砖引玉,提出一些解决方案. 首先在页面前台设置一个GridView. < ...
- 单击GridView进入编辑模式
一直以来,Insus.NET在实现GridView编辑时,均是在每笔记录第一列或是最后一列放置编辑铵钮,点击编辑铵钮之后,进行编辑模式.本博文是使用另外方式,即是点击GridView记录行任一位置,进 ...
- AngularJS进阶(十一)AngularJS实现表格数据的编辑,更新和删除
AngularJS实现表格数据的编辑,更新和删除 效果 实现 首先,我们先建立一些数据,当然你可以从你任何地方读出你的数据 var app = angular.module('plunker', [' ...
- JasperReports 取消自动分页/忽略分页
因为需要将合同比价单由PDF文档形式改为HTML页面方式,虽然转换文档类型了,但是发现HTML页面中间到了一定行数就出现了空行把Detail给隔开了.之前总想着怎样消除中间空行,以为是报表top页面边 ...
- 【ADO.NET基础-GridView】GridView的编辑、更新、取消、删除以及相关基础操作代码
代码都是基础操作,后续功能还会更新,如有问题欢迎提出和提问....... 前台代码: <asp:GridView ID=" OnRowDataBound="GridView1 ...
- ASP.NET(C#) GridView (编辑、删除、更新、取消)
转自:http://my.oschina.net/dldlhrmc/blog/93458 前台代码 view source print? 01 <%@ Page Language=" ...
- GridView行编辑、更新、取消、删除事件使用方法
注意:当启用编辑button时,点击编辑button后会使一整行都切换成文本框.为了是一行中的一部分是文本框,须要把以整行的全部列都转换成模板,然后删掉编辑模板中的代码.这样就能使你想编辑的列转换成文 ...
- 使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
先来看看下面实时效果演示: 用户点击编辑时,在点击行下动态产生一行.编辑铵钮变为disabled.新产生的一行有更新和取消的铵钮,点击“取消”铵钮,删除刚刚动态产生的行.编辑铵钮状态恢复. 更新与删除 ...
- ASP.NET中的GridView自带的编辑更新功能
string ConStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].Connec ...
随机推荐
- iKcamp新书上市《Koa与Node.js开发实战》
内容摘要 Node.js 10已经进入LTS时代!其应用场景已经从脚手架.辅助前端开发(如SSR.PWA等)扩展到API中间层.代理层及专业的后端开发.Node.js在企业Web开发领域也日渐成熟,无 ...
- 文件和Variant的转换
function FileToVariant(FileName: String): OleVariant; var AStream: TFileStream; MyBuffer: Pointe ...
- 树莓派Zero W添加音频输出
编译:陈拓 chentuo@ms.xab.ac.cn 2018.06.07/2018.07.14 原文:Adding Basic Audio Ouput to Raspberry Pi Zero ht ...
- 岭回归和lasso回归(转)
回归和分类是机器学习算法所要解决的两个主要问题.分类大家都知道,模型的输出值是离散值,对应着相应的类别,通常的简单分类问题模型输出值是二值的,也就是二分类问题.但是回归就稍微复杂一些,回归模型的输出值 ...
- nfs只能挂载为nobody的解决方法
不得不承认centos6较centos5发生了很大的变化,在新部署的centos 6.4上又遇到nfs挂载的问题.问题现象是,在配置完nfs后,无论配置里指定的是何用户,挂载成功后显示的只能是nobo ...
- 安装Anaconda以及jupyter的使用
1)下载https://www.anaconda.com/download/ 2)安装 3)终端查看(Anaconda Prompt) 4)升级所有的包 初次安装下的软件包版本一般都比较老旧,因此提前 ...
- WebDriverException: Message: f.QueryInterface is not a function
WebDriverException: Message: f.QueryInterface is not a function 使用webdriver打开c.highpin.cn,结果报错,见下图: ...
- web 前端遇到的问题
前端小白一枚,经常遇到一些小问题,但是解决完吧,又记不住,哎,好记性不如烂笔头咯 1. 如何在js代码中设置checkbox选中? $("#select").attr('check ...
- java.lang.IllegalArgumentException: Service not registered
java.lang.IllegalArgumentException: Service not registered 首先检查一下,Service是否在AndroidManifest文件中注册.格式如 ...
- Element div is not closed
报错内容:Element div is not closed 解决方法: 将代码复制到NotePad++.SubLime Text等文本编辑器中,另存为.jsp或者.html文件. 这样可以利用语法高 ...