gridview控件增删改查(gridview控件增删改查图书数量)
gridview怎么实现增删改查学习
using System;
using System.Collections.Generic;
using System.Web.UI.WebControls;
namespace WebApplicationSample
{
/// summary
/// 这个实例主要演示了如何使用GridView进行数据的增、删、改、查。
/// 更多有关于该控件的知识,可以参考 (请仔细阅读)
/// /summary
public partial class Default : System.Web.UI.Page
{
/// summary
/// 这是我们定义的一个业务实体类,用来保存界面上的列表数据,为了保存,必须支持序列化
/// /summary
[Serializable]
public class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
private ListEmployee data = new ListEmployee();//这是用来保存那个列表数据的字段
/// summary
/// 重写这个方法来保存视图状态。因为每次页面刷新的时候,默认情况下,data都会被清空,如果希望在多次回发的过程中保存数据,则重写该方法
/// /summary
/// returns/returns
protected override object SaveViewState()
{
var obj = new object[] { base.SaveViewState(), data };
return obj;
}
/// summary
/// 重写该方法,是与上面这个方法配套,在回发回来之后加载并还原
/// /summary
/// param name="savedState"/param
protected override void LoadViewState(object savedState)
{
var obj = savedState as object[];
base.LoadViewState(obj[0]);
data = obj[1] as ListEmployee;
}
/// summary
/// 页面初始化的时候执行该代码
/// /summary
/// param name="sender"/param
/// param name="e"/param
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{//这里只是一个示例,默认给页面添加一个初始的员工,实际在做的时候,可以不加
data = new ListEmployee(){
new Employee(){FirstName ="ares",LastName ="chen"}
};
gvData.DataSource = data;
gvData.DataBind();
}
}
/// summary
/// 添加新的员工时执行该代码
/// /summary
/// param name="sender"/param
/// param name="e"/param
protected void btAddNew_Click(object sender, EventArgs e)
{
data.Add(new Employee());//创建一个空的对象
gvData.DataSource = data;//设置数据源
gvData.EditIndex = data.Count - 1;//设置当前这个对象为编辑状态
gvData.DataBind();//绑定数据
}
/// summary
/// 当用户决定要删除某一行数据时执行该代码
/// /summary
/// param name="sender"/param
/// param name="e"/param
protected void gvData_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//删除某一行
data.RemoveAt(e.RowIndex);
gvData.DataSource = data;
gvData.EditIndex = -1;
gvData.DataBind();
}
/// summary
/// 当用户要保存修改时执行该代码
/// /summary
/// param name="sender"/param
/// param name="e"/param
protected void gvData_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
var index = e.RowIndex;//获取当前编辑行当索引号
var row = gvData.Rows[index];//获取当前用户编辑的这一行
var firstName = (row.Cells[1].Controls[0] as TextBox).Text;//获取用户输入的数据
var lastName = (row.Cells[2].Controls[0] as TextBox).Text;//获取用户输入的数据
var emp = data[index];//找到这个对象
emp.FirstName = firstName;
emp.LastName = lastName;
gvData.DataSource = data;
gvData.EditIndex = -1;//退出编辑状态
gvData.DataBind();
}
/// summary
/// 当用户要取消编辑的时候
/// /summary
/// param name="sender"/param
/// param name="e"/param
protected void gvData_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvData.DataSource = data;
gvData.EditIndex = -1;
gvData.DataBind();
}
/// summary
/// 当用户要进行编辑的时候
/// /summary
/// param name="sender"/param
/// param name="e"/param
protected void gvData_RowEditing(object sender, GridViewEditEventArgs e)
{
gvData.DataSource = data;
gvData.EditIndex = e.NewEditIndex;
gvData.DataBind();
}
}
}
怎么用GridView 进行数据库里面表的增删改查,我用的是在GridView后面加个ItemTemplate 然后从工具箱里拖一
在设计视图中,点击GRIDVIEW,编辑模版 ,找到列,编辑ITEMTEMPLATE,双击按钮,生成事件,
Button btn = sender as Button;
GridViewRow row = (GridViewRow)(btn.NamingContainer);//用这段代码获取当前的行
int index = row.RowIndex;//用这段代码获取当前的行索引
gv.EditIndex = index;//使当前行成为编辑状态,如果你使用了自带的控件,可以不用写,如果你没有自带的编辑控件,那么你需要3个按钮,编辑,取消编辑,保存
DateBind();//这是自己写的手动绑定,手动编辑,取消编辑,一定要重新绑定,如果你是自动绑定,就是你的GRIDVIEWID.DataBind();自动绑定的不需要设置状态,但是在数据库保存,一定要第一行获取索引的代码,获取当前行
(row.Cells[你的列索引].Controls[0] as TextBox).Text.Trim();用这种方法获取编辑状态下的编辑值,然后数据库操作
(你的GRIDVIEW_ID).EditIndex = -1;//由与你是手动存数据,那么在数据库操作完成后一定要加上这句话结束编辑\
大哥 怎么在dategridview中实现增删改查
可以在上边放textbox,输入查询条件点击查询。
删除,点击打datagridview选中一行,下边按钮,写删除事件。
添加,的再挑一个页面添加把。
修改和添加可以共用一个页面。根据点的是添加还是修改加载显示不同即可。
Convert .ToInt32 ( dataGridView1.CurrentRow.Cells[0].Value.ToString());//获取gridview里边你点击的第一列数据,可以根据这个删改。
在gridview中增删改查的事件
GridView中没有增加数据的事件
删除事件
protected void gvwCourse_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
Guid m_guidID = new Guid(gvwCourse.DataKeys[e.RowIndex].Value.ToString());
gvwCourseDataBind();//记得绑定
}
修改事件(比较多麻烦点)
protected void gvwCourse_RowEditing(object sender, GridViewEditEventArgs e)
{
gvwCourse.EditIndex = e.NewEditIndex;
gvwCourseDataBind();
}
protected void gvwCourse_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
Guid m_guid = new Guid(gvwCourse.DataKeys[e.RowIndex].Value.ToString());
string m_strName = ((TextBox)gvwCourse.Rows[e.RowIndex].FindControl("txtTitle")).Text.Trim();
HttpPostedFile m_postFile = ((HtmlInputFile)gvwCourse.Rows[e.RowIndex].FindControl("fileUpdate")).PostedFile;
if (m_postFile.FileName.Length != 0 m_postFile.ContentLength != 0)
{
AddOnlineCourse(m_postFile, m_strName);
gvwCourse.EditIndex = -1;
gvwCourseDataBind();
}
gvwCourse.EditIndex = -1;
gvwCourseDataBind();
}
取消修改
protected void gvwCourse_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvwCourse.EditIndex = -1;
gvwCourseDataBind();
}
===========================================
当我用不同sql填充之后就不能用普通的事件来写
===========================================
可以的..或者你可以尝试下用gridview的RowDataBound和DataBound事件中处理你的逻辑数据,这两个事件是在数据绑定到gridview时触发的事件,一般用于比如动态加控件到GridView...
如何在GridView控件中实现编辑和删除功能?
1.所接的数据源(即数据表)必须有主键;
2.配置SqlDataSource:点击配置数据源,新建一个连接,下一步,选择一个表,要具有增加、编辑和删除功能,在这个窗体里点高级按钮,弹出高级SQL生成选项的窗口,如果所选择的表(即数据源)没有主键,在这个窗口的所有选项是灰色的,无法使用。在这个窗口里生成增加、修改、删除语句。这样完成了SqlDataSource控件的数据源配置。
3.配置GridView控件。
(1)在属性面板设置DataSourceID属性为数据源控件SqlDataSource控件。
(2)打开GridView任务面板(在这个控件的右上按钮处),选择编辑列,在此可以增加要显示的列。
(3)在GridView任务面板选择启用编辑、启用删除项,要注意的是:如果在配置SqlDataSource时没有通过高级按钮来生成增加、修改、删除语句,在这个任务面板中将无法见到这几个选项。这样选择后,会自动在GridView生成一列,具有增加、修改、删除按钮。另外也可以通过编辑列或模板列的方式生成增加、修改、删除按钮。通过以上三步,不用编写一句代码就能使GridView具有编辑、增加、删除功能,很方便。