• 纯代码实现GridView绑定增删改


    2008-09-13 14:46 转载
    <%@ 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();
       
  • 相关阅读:
    nyoj 95 众数问题(set)
    nyoj 93 汉诺塔(三)(stack)
    hdu 1010 Tempter of the Bone
    nyoj 55 懒省事的小明(priority_queue优先队列)
    nyoj 31 5个数求最值
    poj 1256 Anagram
    next_permutation函数
    nyoj 19 擅长排列的小明(深搜,next_permutation)
    nyoj 8 一种排序(用vector,sort,不用set)
    nyoj 5 Binary String Matching(string)
  • 原文地址:https://www.cnblogs.com/Golf9527/p/1558497.html
Copyright © 2020-2023  润新知