在上一篇博客中举的例子是用的sqldatasource作为数据源的,但是在实际中,我们还是往往要用到手动的数据源的,这篇博客就来说说如果用手动数据源来为gridview编辑、删除数据。
说明:
1、所用数据库为pubs数据库中的authors表。
2、实现手动设置数据源的更新、删除等操作。
界面设置:
页面的后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
namespace gridView
{
public partial class _4 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}
private void bind()
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["pubsConnectionString"].ConnectionString);
SqlDataAdapter sda = new SqlDataAdapter("select * from authors", con);
DataSet ds = new DataSet();
sda.Fill(ds, "authors");
GridView1.DataSource=ds.Tables["authors"];
GridView1.AllowPaging = true;
GridView1.PageSize = 5;
GridView1.DataBind();
if (GridView1.PageIndex==0)
{
Button1.Enabled = false;
Button2.Enabled = false;
}
else
{
Button1.Enabled = true;
Button2.Enabled = true;
}
if (GridView1.PageIndex==GridView1.PageCount-1)
{
Button3.Enabled = false;
Button4.Enabled = false;
}
else
{
Button3.Enabled = true;
Button4.Enabled = true;
}
}
private int cmd(string query)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["pubsConnectionString"].ConnectionString);
using (con)
{
con.Open();
SqlCommand cmd = new SqlCommand(query, con);
return cmd.ExecuteNonQuery();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
switch (((Button)sender).CommandName.ToString())
{
case "first":
GridView1.PageIndex = 0;
break;
case "prev":
GridView1.PageIndex = GridView1.PageIndex - 1;
break;
case "last":
GridView1.PageIndex = GridView1.PageCount-1;
break;
case "next":
GridView1.PageIndex = GridView1.PageIndex + 1;
break;
}
bind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string id = GridView1.DataKeys[e.RowIndex]["au_id"].ToString();
string fname = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1")).Text;
string city = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox2")).Text;
string phone = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox3")).Text;
string query = "update authors set au_fname='"+fname+"',city='"+city+"',phone='"+phone+"' where au_id='"+id+"'";
if (cmd(query)>0)
{
GridView1.EditIndex = -1;
bind();
}
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
bind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//得到该行的主键
string id = GridView1.DataKeys[e.RowIndex]["au_id"].ToString();
string query = "delete from authors where au_id='"+id+"'";
if (cmd(query)>0)
{
GridView1.EditIndex = -1;
bind();
}
}
}
}
代码其实挺简单的,一看就能看懂,不过我还是建议自己动手去做做,这样肯定会有新的收获。比如说,通过做这个小例子,对gridview的一些属性有新的认识,比如说以前的时候一直不明白“自动生成字段”是什么意思,现在看来原来是这么的简单,呵呵。
由于博客篇幅有限,没有看懂或者想要源码的博友可以留下您的邮箱,我们大家互相学习!
分享到:
相关推荐
GridView操作Xml数据源GridView操作Xml数据源GridView操作Xml数据源GridView操作Xml数据源
gridView用excel当数据源,读取excel gridView用excel当数据源,读取excel gridView用excel当数据源,读取excel
Repeater实现分页显示数据, DataList实现分页,数据编辑与删除, GridView实现分页,数据编辑与删除。
ActivityGroup + GridView + ViewFlipper 实现选项卡源代码.zip ActivityGroup + GridView + ViewFlipper 实现选项卡源代码.zip ActivityGroup + GridView + ViewFlipper 实现选项卡源代码.zip ActivityGroup + ...
android Gridview分页实现的一个小例子
在一个GridView中实现对数据的基本管理,实现增加,修改,删除,是入门学习的经典实例。
扩展GridView控件-导出数据源的数据为Excel、Word或Text
SqlDataSource、GridView、DetailsView显示、编辑、删除数据
GridView手写代码方式和数据源使用.
用自定义GridView实现左右拖拽和点击功能
一个非常优秀的基于GridView实现的分页控件源程序代码,采用VS2005+C#+ASP.NET开发实现。
用GridView实现数据列表中数据内容滚动 表头固定的例子
基于ASP.NET的GridView控件数据维护编辑及排序翻页查询功能的实现,采用VS2005+C#+ASP.NET实现,基于VS2005提供的GridView扩展了数据的增加、修改、删除、查询、翻页、排序、查询、分组等功能。
今天我们再学习另外一种合理绑定数据源的前端显示方式——网格,不少客户端在展示产品时会使用网格来显示,另外我们Launcher显示应用时同样使用的是网格GridView。文章见www.ourunix.org/android/post/123.html
GridView多行编辑(C#)GridView多行编辑(C#) GridView多行编辑(C#) GridView多行编辑(C#)
使用GridView的模板列实现在线编辑的功能
老板要写的! 代码实现GridView数据显示 所有的参数都是通过代码设置的! 有需要的朋友可以看看! 感觉有点麻烦呀
面向对象课程实验数据控件gridview用法演示