新增及删除Grid行

示例效果如下

点击 新增 按钮 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

}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值