Gridview编辑,修改,删除

17 篇文章 1 订阅

 

一,效果图:

 

二,editeGridview.aspx源文件:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="editeGridview.aspx.cs" Inherits="editeGridview" %>

<!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></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       <asp:GridView runat="server" ID="EditGridview" 
          Width="600px"
            DataKeyNames="ID" AutoGenerateColumns="False" 
            onrowcancelingedit="EditGridview_RowCancelingEdit" 
            onrowdatabound="EditGridview_RowDataBound" 
            onrowdeleting="EditGridview_RowDeleting" onrowediting="EditGridview_RowEditing" 
            onrowupdating="EditGridview_RowUpdating" CellPadding="4" 
            ForeColor="#333333" GridLines="None">
           <AlternatingRowStyle BackColor="White" />
         <Columns>
           <asp:TemplateField  HeaderText="NO">
             <ItemTemplate>
               <asp:Label runat="server"  ID="lb_ID" Text='<%# Eval("ID") %>'></asp:Label>
             </ItemTemplate>
           </asp:TemplateField>
           <asp:TemplateField HeaderText="班级">
              <ItemTemplate>
                 <asp:Label runat="server" ID="lb_class"  Text='<%# Eval("class") %>'></asp:Label>
              </ItemTemplate>
              <EditItemTemplate>
                <asp:TextBox runat="server" ID="txt_class" Width="80px" Text='<%# Eval("class") %>'></asp:TextBox>
              </EditItemTemplate>
           </asp:TemplateField>
            <asp:TemplateField HeaderText="男生">
              <ItemTemplate>
                 <asp:Label runat="server" ID="lb_boys"  Text='<%# Eval("boys") %>'></asp:Label>
              </ItemTemplate>
              <EditItemTemplate>
                 <asp:TextBox runat="server" ID="txt_boys"  Width="80px"  Text='<%# Eval("boys") %>'></asp:TextBox>
              </EditItemTemplate>
           </asp:TemplateField>
            <asp:TemplateField HeaderText="女生">
              <ItemTemplate>
                 <asp:Label runat="server" ID="lb_girls"  Text='<%# Eval("girls") %>'></asp:Label>
              </ItemTemplate>
              <EditItemTemplate>
                 <asp:TextBox runat="server" ID="txt_girls" Width="80px" Text='<%# Eval("girls") %>'></asp:TextBox>
              </EditItemTemplate>
           </asp:TemplateField>
            <asp:TemplateField HeaderText="编辑">
              <ItemTemplate>
                  <asp:LinkButton runat="server" ID="lbtn_edit" CommandName="edit"  Text="编辑" ></asp:LinkButton>
              </ItemTemplate>
              <EditItemTemplate>
                  <asp:LinkButton runat="server" ID="lbtn_update" Text="修改"  CommandName="update" CausesValidation="false"></asp:LinkButton>
                  <asp:LinkButton runat="server" ID="lbtn_cancel"  Text="取消" CommandName="cancel" CausesValidation="false"></asp:LinkButton>
              </EditItemTemplate>
           </asp:TemplateField>
           <asp:TemplateField HeaderText="删除">
                <ItemTemplate>
                   <asp:LinkButton runat="server" ID="lbtn_delete" CommandName="delete" Text="删除" CausesValidation="false"></asp:LinkButton>
                </ItemTemplate>
           </asp:TemplateField>
     
         </Columns>
           <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
           <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
           <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
           <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
           <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
           <SortedAscendingCellStyle BackColor="#FDF5AC" />
           <SortedAscendingHeaderStyle BackColor="#4D0000" />
           <SortedDescendingCellStyle BackColor="#FCF6C0" />
           <SortedDescendingHeaderStyle BackColor="#820000" />
       </asp:GridView>
    </div>
    </form>
</body>
</html>


三。editeGridview.aspx.cs源文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using IsXMLUtility;
using System.Data;

public partial class editeGridview : System.Web.UI.Page
{

    XmlHelper xmlHelper = new XmlHelper();
    public DataTable dtsource
    {
        get
        {
            if (ViewState["dtsource"] == null)
                return null;
            else
                return ViewState["dtsource"] as DataTable;

        }
        set
        {
            ViewState["dtsource"] = value;
 
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            dtsource = xmlHelper.getDTXML("班级表");
            InitGV();
           
        }

    }


    private void InitGV()
    {
        DataTable dt = xmlHelper.getDTXML("班级表");
        this.EditGridview.DataSource = dtsource.DefaultView;
        EditGridview.DataBind();
 
    }
    protected void EditGridview_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType== DataControlRowType.DataRow)
        {
     
        }


    }
    protected void EditGridview_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        DataTable dt = dtsource;
        int ID = int.Parse(EditGridview.DataKeys[e.RowIndex].Values["ID"].ToString())-1;
        TextBox txt_class = EditGridview.Rows[e.RowIndex].FindControl("txt_class") as TextBox;
        TextBox txt_boys = EditGridview.Rows[e.RowIndex].FindControl("txt_boys") as TextBox;
        TextBox txt_girls = EditGridview.Rows[e.RowIndex].FindControl("txt_girls") as TextBox;
        dt.Rows[ID]["class"] = txt_class.Text;
        dt.Rows[ID]["boys"] = txt_boys.Text;
        dt.Rows[ID]["girls"] = txt_girls.Text;
        dtsource = dt;
        EditGridview.EditIndex = -1;
        InitGV();

    }
    protected void EditGridview_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        int  ID =int.Parse( EditGridview.DataKeys[e.RowIndex].Values["ID"].ToString())-1;
        dtsource.Rows.RemoveAt(ID);
        InitGV();

    }
    protected void EditGridview_RowEditing(object sender, GridViewEditEventArgs e)
    {
        EditGridview.EditIndex = e.NewEditIndex;
        InitGV();
      

    }
    protected void EditGridview_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        EditGridview.EditIndex = -1;
        InitGV();

    }
}


四,班级表

<?xml version="1.0" encoding="utf-8" ?>
<config>
  <Header  col1="class" col2="ID" col3="class_name" col4="year" col5="grade"  col6="boys" col7="girls"></Header>
  <row col1="一五班" col2="01" col3="实验班" col4="2013" col5="初中"  col6="20" col7="30"></row>
  <row col1="一六班" col2="02" col3="奥数班" col4="2013" col5="初中"  col6="25" col7="60" ></row>
  <row col1="一六班" col2="03" col3="阳光班" col4="2013" col5="初中"  col6="69" col7="48"></row>
</config>


五。XmlHelper.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Xml;

namespace IsXMLUtility
{

    /// <summary>
    ///XmlHelper 的摘要说明
    /// </summary>
    public class XmlHelper
    {
        public XmlHelper()
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //
        }
        public DataTable getDTXML(string xmlname)
        {
            DataTable result = new DataTable();
            string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\\Xml\\" + xmlname + ".xml";//xml的物理路径
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(fileName);
            XmlNodeList xWitsTablesList = xmlDoc.SelectNodes("/config");
            foreach (XmlNode xOracleNode in xWitsTablesList)
            {
                foreach (XmlNode node2 in xOracleNode.ChildNodes)
                {
                    if (node2.Name == "Header")
                    {
                        //   //绑定表头
                        foreach (XmlNode node3 in node2.Attributes)
                        {
                            result.Columns.Add(node3.Value);
                        }
                    }
                    else
                    {
                        //数据行
                        int i = 0;//列标志
                        DataRow dr = result.NewRow();
                        foreach (XmlNode node4 in node2.Attributes)
                        {
                            dr[i] = node4.Value.ToString();
                            i++;
                        }
                        result.Rows.Add(dr);
                    }

                }
            }
            return result;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="xmlname">xml名字</param>
        /// <param name="Header">序号列名字</param>
        /// <param name="colsNumber">序号开始编号</param>
        /// <returns></returns>
        public DataTable getDTXML(string xmlname, string Header, int colsNumber)
        {
            DataTable result = new DataTable();
            if (Header == "")
                Header = "N0";
            if (colsNumber < 0)
                colsNumber = 1;
            result.Columns.Add(Header);
            string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\\Xml\\" + xmlname + ".xml";//xml的物理路径
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(fileName);
            XmlNodeList xWitsTablesList = xmlDoc.SelectNodes("/config");
            foreach (XmlNode xOracleNode in xWitsTablesList)
            {
                foreach (XmlNode node2 in xOracleNode.ChildNodes)
                {
                    if (node2.Name == "Header")
                    {
                        //绑定表头
                        foreach (XmlNode node3 in node2.Attributes)
                        {
                            result.Columns.Add(node3.Value);
                        }
                    }
                    else
                    {
                        //数据行
                        int i = 1;//列标志
                        DataRow dr = result.NewRow();
                        dr[0] = colsNumber;
                        foreach (XmlNode node4 in node2.Attributes)
                        {
                            dr[i] = node4.Value.ToString();
                            i++;
                        }
                        colsNumber++;
                        result.Rows.Add(dr);
                    }

                }
            }
            return result;
        }


    }
}



 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值