您的位置:首页 > 编程语言 > ASP

新增及删除Grid行

2007-10-10 17:58 155 查看
示例效果如下



点击 新增 按钮 Grid将增加一空行 用于输入

点击 删除 按钮 将删除该行记录并重新绑定Grid

相关代码如下

HTML部分




<%

@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="PrivateWork_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>Grid 新增及删除一行</title>


</head>


<body>


    <form id="form1" runat="server">




        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >


            <Columns>


                <asp:TemplateField HeaderText="pID">


                    <ItemTemplate>


                        <asp:TextBox ID="txt_pID" runat="server" Width="98" 


                              Text='<%# Bind("pID") %>'></asp:TextBox>


                    </ItemTemplate>


                    <HeaderStyle HorizontalAlign="Center" />


                </asp:TemplateField>


                <asp:TemplateField HeaderText="pName">


                    <ItemTemplate>


                        <asp:TextBox ID="txt_pName" runat="server" Width="98" 


                              Text='<%# Bind("pName") %>' ></asp:TextBox>


                    </ItemTemplate>


                    <HeaderStyle HorizontalAlign="Center" />


                </asp:TemplateField>


                <asp:TemplateField>


                    <HeaderTemplate>


                        <asp:Button ID="btn_NewAdd" runat="server" Text="新增" 


                            OnClick="btn_NewAdd_Click" />


                    </HeaderTemplate>


                    <ItemTemplate>


                        <asp:Button ID="btn_Delete" runat="server" Text="删除" 


                         CommandArgument="<%# GridView1.Rows.Count %>" 


                         OnClick="btn_Delete_Click" />


                    </ItemTemplate>


                </asp:TemplateField>


            </Columns>


       </asp:GridView>




        <asp:Button ID="btn_SaveAndShow" runat="server" Text="保存并显示数据在GridView2" 


          OnClick="btn_SaveAndShow_Click" /><br />


        <asp:GridView ID="GridView2" runat="server" Width="200">


        </asp:GridView>


        


    </form>


</body>


</html>



 

后台部分


using System;


using System.Data;


using System.Configuration;


using System.Collections;


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;




public partial class PrivateWork_Default : System.Web.UI.Page






{




    Page_Load 构造DataTable#region Page_Load 构造DataTable


    protected void Page_Load(object sender, EventArgs e)




    

{


        if (!IsPostBack)




        

{


            //


            DataTable dt = new DataTable();


            dt.Columns.Add("pID", typeof(string));


            dt.Columns.Add("pName", typeof(string));


            DataRow dr = dt.NewRow();


            dr["pID"] = "";


            dr["pName"] = "";


            dt.Rows.Add(dr);


            ViewState.Add("mydt", dt);


            //


            this.GridView1.DataSource = dt;


            this.GridView1.DataBind();


        }


    }


    #endregion






    Grid 新增一行#region Grid 新增一行


    protected void btn_NewAdd_Click(object sender, EventArgs e)




    

{


        DataTable dt = (DataTable)ViewState["mydt"];


        dt.Rows.Clear();


        //保存页面输入


        for (int i = 0; i < this.GridView1.Rows.Count; i++)




        

{


            string str_pID = ((TextBox)this.GridView1.Rows[i].FindControl("txt_pID")).Text.Trim();


            string str_pName = ((TextBox)this.GridView1.Rows[i].FindControl("txt_pName")).Text.Trim();


            //


            DataRow dr = dt.NewRow();


            dr["pID"] = str_pID;


            dr["pName"] = str_pName;


            dt.Rows.Add(dr);


        }        


        //新增空行


        DataRow drEmpty = dt.NewRow();


        drEmpty["pID"] = "";


        drEmpty["pName"] = "";


        dt.Rows.Add(drEmpty);


        //


        ViewState["mydt"] = dt;


        //


        this.GridView1.DataSource = dt;


        this.GridView1.DataBind();


    }


    #endregion






    Grid 删除一行#region Grid 删除一行


    protected void btn_Delete_Click(object sender, EventArgs e)




    

{


        //删除指定行


        int intIndex = Convert.ToInt32(((Button)sender).CommandArgument);


        DataTable dt = (DataTable)ViewState["mydt"];


        dt.Rows.RemoveAt(intIndex);


        //确保至少有一空行 以使GridView1能显示


        if (dt.Rows.Count == 0)




        

{


            DataRow drEmpty = dt.NewRow();


            drEmpty["pID"] = "";


            drEmpty["pName"] = "";


            dt.Rows.Add(drEmpty);


        }


        //


        ViewState["mydt"] = dt;


        //


        this.GridView1.DataSource = dt;


        this.GridView1.DataBind();


    }


    #endregion






    保存并显示 按钮#region 保存并显示 按钮


    protected void btn_SaveAndShow_Click(object sender, EventArgs e)




    

{


        DataTable dt = (DataTable)ViewState["mydt"];


        dt.Rows.Clear();


        //


        for (int i = 0; i < this.GridView1.Rows.Count; i++)




        

{


            string str_pID = ((TextBox)this.GridView1.Rows[i].FindControl("txt_pID")).Text.Trim();


            string str_pName = ((TextBox)this.GridView1.Rows[i].FindControl("txt_pName")).Text.Trim();


            //


            DataRow dr = dt.NewRow();


            dr["pID"] = str_pID;


            dr["pName"] = str_pName;


            dt.Rows.Add(dr);


        }


        ViewState["mydt"] = dt;


        //


        this.GridView2.DataSource = dt;


        this.GridView2.DataBind();


    }


    #endregion


}



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息