<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView_Demo</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="myGrid" runat="server" >
</asp:GridView>
</div>
</form>
</body>
</html>
====================================
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
//myself
using System.Drawing;
public partial class _Default : System.Web.UI.Page
{
private Employees.Employees_BLL bll = new Employees.Employees_BLL();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//设置GridView外观样式
setGridViewStyle();
//创建及设置Fields字段
setFields();
//设置 GridView 数据源绑定
GridBind();
}
//以后台的方式添加 GridView 的各类事件
myGrid.RowEditing += new GridViewEditEventHandler(myGrid_RowEditing);
myGrid.RowUpdating += new GridViewUpdateEventHandler(myGrid_RowUpdating);
myGrid.RowCancelingEdit += new GridViewCancelEditEventHandler(myGrid_RowCancelingEdit);
myGrid.RowDeleting += new GridViewDeleteEventHandler(myGrid_RowDeleting);
}
方法#region 方法
//设置GridView外观样式
private void setGridViewStyle()
{
myGrid.AutoGenerateColumns = false;
//设置Row的键值组成,具有唯一性
string[] KeyNames = new string[] { "EmployeeID" };
myGrid.DataKeyNames = KeyNames;
//设置GridView属性
myGrid.AllowPaging = true; //设置分页
myGrid.AllowSorting = true; //设置排序
myGrid.Font.Size = 10; //设置字号大小
myGrid.GridLines = GridLines.Both; //设置网格线
myGrid.PageSize = 15; //分页大小
myGrid.PagerSettings.Position = PagerPosition.TopAndBottom; //分页位置
myGrid.PagerStyle.HorizontalAlign = HorizontalAlign.Center; //分页对齐
myGrid.HeaderStyle.BackColor = Color.Tan;
myGrid.RowStyle.BackColor = Color.LightGoldenrodYellow;
myGrid.AlternatingRowStyle.BackColor = Color.PaleGoldenrod;
myGrid.HeaderStyle.ForeColor = Color.Black;
myGrid.PagerStyle.BackColor = Color.Goldenrod;
myGrid.SelectedRowStyle.BackColor = Color.LightBlue; //设置选择行背景颜色
//myGrid.ShowFooter = true;
}
//创建及设置Fields字段
private void setFields()
{
//创建"编辑"命令字段
CommandField editField = new CommandField();
editField.ButtonType = ButtonType.Button;
editField.ShowEditButton = true; //显示"编辑"按钮
editField.ShowCancelButton = true; //显示"取消"按钮
editField.EditText = "编辑";
editField.UpdateText = "更新";
editField.CancelText = "取消";
editField.ControlStyle.BackColor = Color.LightPink;
editField.ItemStyle.Wrap = false;
//创建"删除"命令字段
CommandField deleteField = new CommandField();
deleteField.ButtonType = ButtonType.Button;
deleteField.ShowDeleteButton = true; //显示"删除"按钮
deleteField.DeleteText = "删除";
deleteField.ControlStyle.BackColor = Color.LightPink;
deleteField.ItemStyle.Wrap = false;
//创建数据绑定字段
BoundField employeeidField = new BoundField();
BoundField lastnameField = new BoundField();
BoundField firstnameField = new BoundField();
BoundField titleField = new BoundField();
BoundField addressField = new BoundField();
BoundField cityField = new BoundField();
employeeidField.DataField = "EmployeeID";//指定数据源字段
employeeidField.HeaderText = "员工代号"; //设置字段头名称
employeeidField.ItemStyle.Wrap = false; //设置字段不换行
employeeidField.ReadOnly = true; //只读,编辑模式不能修改
lastnameField.DataField = "LastName";
lastnameField.HeaderText = "名字";
lastnameField.ItemStyle.Wrap = false;
lastnameField.ReadOnly = true; //只读,编辑模式不能修改
firstnameField.DataField = "FirstName";
firstnameField.HeaderText = "姓氏";
firstnameField.ItemStyle.Wrap = false;
//firstnameField.ReadOnly = true;
titleField.DataField = "Title";
titleField.HeaderText = "职称";
titleField.ItemStyle.Wrap = false;
addressField.DataField = "Address";
addressField.HeaderText = "地址";
addressField.ItemStyle.Wrap = false;
cityField.DataField = "City";
cityField.HeaderText = "城市";
cityField.ItemStyle.Wrap = false;
//将字段添加到GridView
myGrid.Columns.Add(editField); //编辑
myGrid.Columns.Add(deleteField);//删除
myGrid.Columns.Add(employeeidField);
myGrid.Columns.Add(lastnameField);
myGrid.Columns.Add(firstnameField);
myGrid.Columns.Add(titleField);
myGrid.Columns.Add(addressField);
myGrid.Columns.Add(cityField);
}
//设置 GridView 数据源绑定
public void GridBind()
{
//bll = new Employees.Employees_BLL();
myGrid.DataSource = bll.GetAllList();
myGrid.DataBind();
}
#endregion 方法
// GridView 编辑操作
protected void myGrid_RowEditing(object sender, GridViewEditEventArgs e)
{
//设置编辑行的索引
myGrid.EditIndex = e.NewEditIndex;
//设置更新与取消按钮之背景颜色
myGrid.Columns[0].ControlStyle.BackColor = Color.LightSteelBlue;
myGrid.Columns[1].ControlStyle.BackColor = Color.LightSteelBlue;
myGrid.ShowFooter = true;
//设置GridView在编辑模式时,TextBox字段宽度及背景颜色
//EmployeeID字段
myGrid.Columns[2].ControlStyle.Width = 80;
myGrid.Columns[2].ControlStyle.BackColor = Color.LightBlue;
myGrid.Columns[2].FooterText = "不可编辑";
myGrid.Columns[2].FooterStyle.BackColor = Color.Red;
//LastName字段
myGrid.Columns[3].ControlStyle.Width = 80;
myGrid.Columns[3].ControlStyle.BackColor = Color.LightBlue;
myGrid.Columns[3].FooterText = "不可编辑";
myGrid.Columns[3].FooterStyle.BackColor = Color.Red;
//FirstName字段
myGrid.Columns[4].ControlStyle.Width = 80;
myGrid.Columns[4].ControlStyle.BackColor = Color.LightBlue;
myGrid.Columns[4].FooterText = "可编辑";
myGrid.Columns[4].FooterStyle.BackColor = Color.Red;
//Title字段
myGrid.Columns[5].ControlStyle.Width = 100;
myGrid.Columns[5].ControlStyle.BackColor = Color.LightPink;
myGrid.Columns[5].FooterText = "可编辑";
myGrid.Columns[5].FooterStyle.BackColor = Color.Red;
//Address字段
myGrid.Columns[6].ControlStyle.Width = 120;
myGrid.Columns[6].ControlStyle.BackColor = Color.LightPink;
myGrid.Columns[6].FooterText = "可编辑";
myGrid.Columns[6].FooterStyle.BackColor = Color.Red;
//City字段
myGrid.Columns[7].ControlStyle.Width = 80;
myGrid.Columns[7].ControlStyle.BackColor = Color.LightGreen;
myGrid.Columns[7].FooterText = "可编辑";
myGrid.Columns[7].FooterStyle.BackColor = Color.Red;
GridBind();
}
// GridView 更新操作
protected void myGrid_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
if (e.NewValues != e.OldValues)
{
Employees.Employees_Model model = new Employees.Employees_Model();
model.EmployeeID = Convert.ToInt32(myGrid.Rows[e.RowIndex].Cells[2].Text.Trim());
//Employees_DAL 中的 where 条件为 EmployeeID and LastName, 所以 LastName 不能更改
model.LastName = myGrid.Rows[e.RowIndex].Cells[3].Text.ToString();
model.FirstName = ((TextBox)myGrid.Rows[e.RowIndex].Cells[4].Controls[0]).Text.ToString();
model.Title = ((TextBox)myGrid.Rows[e.RowIndex].Cells[5].Controls[0]).Text.ToString();
model.Address = ((TextBox)myGrid.Rows[e.RowIndex].Cells[6].Controls[0]).Text.ToString();
model.City = ((TextBox)myGrid.Rows[e.RowIndex].Cells[7].Controls[0]).Text.ToString();
//Employees.BLL.Employees_Model bll = new Employees.BLL.Employees_Model();
bll.Update(model);
//取消编辑时隐藏Footer
myGrid.ShowFooter = false;
//设置"编辑"和"删除"按钮还原为系统定义的颜色
myGrid.Columns[0].ControlStyle.BackColor = Color.LightPink;
myGrid.Columns[1].ControlStyle.BackColor = Color.LightPink;
myGrid.EditIndex = -1;
GridBind();
}
}
// GridView 取消事件
protected void myGrid_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
//取消编辑时隐藏Footer
myGrid.ShowFooter = false;
//设置"编辑"和"删除"按钮还原为系统定义的颜色
myGrid.Columns[0].ControlStyle.BackColor = Color.LightPink;
myGrid.Columns[1].ControlStyle.BackColor = Color.LightPink;
myGrid.EditIndex = -1; //取消编辑状态
GridBind();
}
// GridView 删除操作
protected void myGrid_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//设置更新与取消按钮之背景颜色
myGrid.Columns[0].ControlStyle.BackColor = Color.LightSteelBlue;
myGrid.Columns[1].ControlStyle.BackColor = Color.LightSteelBlue;
// 获取 Employees_DAL 中的 where 条件: EmployeeID and LastName
int strEmployeeID = Convert.ToInt32(myGrid.DataKeys[e.RowIndex].Values[0]);
string strLastName = myGrid.Rows[e.RowIndex].Cells[3].Text.ToString();
bll.Delete(strEmployeeID, strLastName); //删除
GridBind();
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView_Demo</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="myGrid" runat="server" >
</asp:GridView>
</div>
</form>
</body>
</html>
====================================
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
//myself
using System.Drawing;
public partial class _Default : System.Web.UI.Page
{
private Employees.Employees_BLL bll = new Employees.Employees_BLL();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//设置GridView外观样式
setGridViewStyle();
//创建及设置Fields字段
setFields();
//设置 GridView 数据源绑定
GridBind();
}
//以后台的方式添加 GridView 的各类事件
myGrid.RowEditing += new GridViewEditEventHandler(myGrid_RowEditing);
myGrid.RowUpdating += new GridViewUpdateEventHandler(myGrid_RowUpdating);
myGrid.RowCancelingEdit += new GridViewCancelEditEventHandler(myGrid_RowCancelingEdit);
myGrid.RowDeleting += new GridViewDeleteEventHandler(myGrid_RowDeleting);
}
方法#region 方法
//设置GridView外观样式
private void setGridViewStyle()
{
myGrid.AutoGenerateColumns = false;
//设置Row的键值组成,具有唯一性
string[] KeyNames = new string[] { "EmployeeID" };
myGrid.DataKeyNames = KeyNames;
//设置GridView属性
myGrid.AllowPaging = true; //设置分页
myGrid.AllowSorting = true; //设置排序
myGrid.Font.Size = 10; //设置字号大小
myGrid.GridLines = GridLines.Both; //设置网格线
myGrid.PageSize = 15; //分页大小
myGrid.PagerSettings.Position = PagerPosition.TopAndBottom; //分页位置
myGrid.PagerStyle.HorizontalAlign = HorizontalAlign.Center; //分页对齐
myGrid.HeaderStyle.BackColor = Color.Tan;
myGrid.RowStyle.BackColor = Color.LightGoldenrodYellow;
myGrid.AlternatingRowStyle.BackColor = Color.PaleGoldenrod;
myGrid.HeaderStyle.ForeColor = Color.Black;
myGrid.PagerStyle.BackColor = Color.Goldenrod;
myGrid.SelectedRowStyle.BackColor = Color.LightBlue; //设置选择行背景颜色
//myGrid.ShowFooter = true;
}
//创建及设置Fields字段
private void setFields()
{
//创建"编辑"命令字段
CommandField editField = new CommandField();
editField.ButtonType = ButtonType.Button;
editField.ShowEditButton = true; //显示"编辑"按钮
editField.ShowCancelButton = true; //显示"取消"按钮
editField.EditText = "编辑";
editField.UpdateText = "更新";
editField.CancelText = "取消";
editField.ControlStyle.BackColor = Color.LightPink;
editField.ItemStyle.Wrap = false;
//创建"删除"命令字段
CommandField deleteField = new CommandField();
deleteField.ButtonType = ButtonType.Button;
deleteField.ShowDeleteButton = true; //显示"删除"按钮
deleteField.DeleteText = "删除";
deleteField.ControlStyle.BackColor = Color.LightPink;
deleteField.ItemStyle.Wrap = false;
//创建数据绑定字段
BoundField employeeidField = new BoundField();
BoundField lastnameField = new BoundField();
BoundField firstnameField = new BoundField();
BoundField titleField = new BoundField();
BoundField addressField = new BoundField();
BoundField cityField = new BoundField();
employeeidField.DataField = "EmployeeID";//指定数据源字段
employeeidField.HeaderText = "员工代号"; //设置字段头名称
employeeidField.ItemStyle.Wrap = false; //设置字段不换行
employeeidField.ReadOnly = true; //只读,编辑模式不能修改
lastnameField.DataField = "LastName";
lastnameField.HeaderText = "名字";
lastnameField.ItemStyle.Wrap = false;
lastnameField.ReadOnly = true; //只读,编辑模式不能修改
firstnameField.DataField = "FirstName";
firstnameField.HeaderText = "姓氏";
firstnameField.ItemStyle.Wrap = false;
//firstnameField.ReadOnly = true;
titleField.DataField = "Title";
titleField.HeaderText = "职称";
titleField.ItemStyle.Wrap = false;
addressField.DataField = "Address";
addressField.HeaderText = "地址";
addressField.ItemStyle.Wrap = false;
cityField.DataField = "City";
cityField.HeaderText = "城市";
cityField.ItemStyle.Wrap = false;
//将字段添加到GridView
myGrid.Columns.Add(editField); //编辑
myGrid.Columns.Add(deleteField);//删除
myGrid.Columns.Add(employeeidField);
myGrid.Columns.Add(lastnameField);
myGrid.Columns.Add(firstnameField);
myGrid.Columns.Add(titleField);
myGrid.Columns.Add(addressField);
myGrid.Columns.Add(cityField);
}
//设置 GridView 数据源绑定
public void GridBind()
{
//bll = new Employees.Employees_BLL();
myGrid.DataSource = bll.GetAllList();
myGrid.DataBind();
}
#endregion 方法
// GridView 编辑操作
protected void myGrid_RowEditing(object sender, GridViewEditEventArgs e)
{
//设置编辑行的索引
myGrid.EditIndex = e.NewEditIndex;
//设置更新与取消按钮之背景颜色
myGrid.Columns[0].ControlStyle.BackColor = Color.LightSteelBlue;
myGrid.Columns[1].ControlStyle.BackColor = Color.LightSteelBlue;
myGrid.ShowFooter = true;
//设置GridView在编辑模式时,TextBox字段宽度及背景颜色
//EmployeeID字段
myGrid.Columns[2].ControlStyle.Width = 80;
myGrid.Columns[2].ControlStyle.BackColor = Color.LightBlue;
myGrid.Columns[2].FooterText = "不可编辑";
myGrid.Columns[2].FooterStyle.BackColor = Color.Red;
//LastName字段
myGrid.Columns[3].ControlStyle.Width = 80;
myGrid.Columns[3].ControlStyle.BackColor = Color.LightBlue;
myGrid.Columns[3].FooterText = "不可编辑";
myGrid.Columns[3].FooterStyle.BackColor = Color.Red;
//FirstName字段
myGrid.Columns[4].ControlStyle.Width = 80;
myGrid.Columns[4].ControlStyle.BackColor = Color.LightBlue;
myGrid.Columns[4].FooterText = "可编辑";
myGrid.Columns[4].FooterStyle.BackColor = Color.Red;
//Title字段
myGrid.Columns[5].ControlStyle.Width = 100;
myGrid.Columns[5].ControlStyle.BackColor = Color.LightPink;
myGrid.Columns[5].FooterText = "可编辑";
myGrid.Columns[5].FooterStyle.BackColor = Color.Red;
//Address字段
myGrid.Columns[6].ControlStyle.Width = 120;
myGrid.Columns[6].ControlStyle.BackColor = Color.LightPink;
myGrid.Columns[6].FooterText = "可编辑";
myGrid.Columns[6].FooterStyle.BackColor = Color.Red;
//City字段
myGrid.Columns[7].ControlStyle.Width = 80;
myGrid.Columns[7].ControlStyle.BackColor = Color.LightGreen;
myGrid.Columns[7].FooterText = "可编辑";
myGrid.Columns[7].FooterStyle.BackColor = Color.Red;
GridBind();
}
// GridView 更新操作
protected void myGrid_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
if (e.NewValues != e.OldValues)
{
Employees.Employees_Model model = new Employees.Employees_Model();
model.EmployeeID = Convert.ToInt32(myGrid.Rows[e.RowIndex].Cells[2].Text.Trim());
//Employees_DAL 中的 where 条件为 EmployeeID and LastName, 所以 LastName 不能更改
model.LastName = myGrid.Rows[e.RowIndex].Cells[3].Text.ToString();
model.FirstName = ((TextBox)myGrid.Rows[e.RowIndex].Cells[4].Controls[0]).Text.ToString();
model.Title = ((TextBox)myGrid.Rows[e.RowIndex].Cells[5].Controls[0]).Text.ToString();
model.Address = ((TextBox)myGrid.Rows[e.RowIndex].Cells[6].Controls[0]).Text.ToString();
model.City = ((TextBox)myGrid.Rows[e.RowIndex].Cells[7].Controls[0]).Text.ToString();
//Employees.BLL.Employees_Model bll = new Employees.BLL.Employees_Model();
bll.Update(model);
//取消编辑时隐藏Footer
myGrid.ShowFooter = false;
//设置"编辑"和"删除"按钮还原为系统定义的颜色
myGrid.Columns[0].ControlStyle.BackColor = Color.LightPink;
myGrid.Columns[1].ControlStyle.BackColor = Color.LightPink;
myGrid.EditIndex = -1;
GridBind();
}
}
// GridView 取消事件
protected void myGrid_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
//取消编辑时隐藏Footer
myGrid.ShowFooter = false;
//设置"编辑"和"删除"按钮还原为系统定义的颜色
myGrid.Columns[0].ControlStyle.BackColor = Color.LightPink;
myGrid.Columns[1].ControlStyle.BackColor = Color.LightPink;
myGrid.EditIndex = -1; //取消编辑状态
GridBind();
}
// GridView 删除操作
protected void myGrid_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//设置更新与取消按钮之背景颜色
myGrid.Columns[0].ControlStyle.BackColor = Color.LightSteelBlue;
myGrid.Columns[1].ControlStyle.BackColor = Color.LightSteelBlue;
// 获取 Employees_DAL 中的 where 条件: EmployeeID and LastName
int strEmployeeID = Convert.ToInt32(myGrid.DataKeys[e.RowIndex].Values[0]);
string strLastName = myGrid.Rows[e.RowIndex].Cells[3].Text.ToString();
bll.Delete(strEmployeeID, strLastName); //删除
GridBind();
}
}