GridView动态增加行

来源:互联网 发布:匿名发泄软件 编辑:程序博客网 时间:2024/05/22 14:10
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    
<title>无标题页</title>
</head>
<body>
    
<form id="form2" runat="server">
        
<div>
            
<asp:Button ID="Button1" runat="server" Text="添加空行" OnClick="Button1_Click" />
            
<asp:Button ID="Button2" runat="server" Text="保存所有" OnClick="Button2_Click" />
            
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id">
                
<Columns>
                    
<asp:TemplateField>
                        
<ItemTemplate>
                            
<asp:CheckBox ID="CheckBox1" runat="server" />
                        
</ItemTemplate>
                    
</asp:TemplateField>
                    
<asp:TemplateField HeaderText="产品">
                        
<ItemTemplate>
                            
<asp:TextBox ID="TextBox1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "产品")%>'></asp:TextBox>
                        
</ItemTemplate>
                    
</asp:TemplateField>
                    
<asp:TemplateField HeaderText="数量">
                        
<ItemTemplate>
                            
<asp:TextBox ID="TextBox2" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "数量")%>'></asp:TextBox>
                        
</ItemTemplate>
                    
</asp:TemplateField>
                    
<asp:TemplateField HeaderText="日期">
                        
<ItemTemplate>
                            
<asp:TextBox ID="TextBox3" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "日期")%>'></asp:TextBox>
                        
</ItemTemplate>
                    
</asp:TemplateField>
                    
<asp:TemplateField HeaderText="状态">
                        
<ItemTemplate>
                            
<asp:DropDownList ID="DropDownList1" runat="server" SelectedValue='<%# DataBinder.Eval(Container.DataItem, "状态")%>'>
                                
<asp:ListItem Value="1" Selected="True">有效</asp:ListItem>
                                
<asp:ListItem Value="0">无效</asp:ListItem>
                            
</asp:DropDownList>
                        
</ItemTemplate>
                    
</asp:TemplateField>
                
</Columns>
            
</asp:GridView>
            
<br />
            
&nbsp;&nbsp;
        
</div>
    
</form>
</body>
</html>

cs文件:

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 Default5 : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!IsPostBack)
        
{
            BindTestData();
        }

    }


    
protected void BindTestData()
    
{
        
//模拟出一些原始数据绑定DataGrid
        DataTable dt1 = new DataTable("Table1");
        dt1.Columns.Add(
"ID");
        dt1.Columns.Add(
"产品");
        dt1.Columns.Add(
"数量");
        dt1.Columns.Add(
"日期");
        dt1.Columns.Add(
"状态");

        dt1.Rows.Add(
new object[] 123"产品AA"12"2006-11-14""1" });
        dt1.AcceptChanges();

        
this.GridView1.DataSource = dt1;
        
this.GridView1.DataBind();
    }


    
protected DataTable GetDataFromGrid()
    
{
        DataTable dt1 
= new DataTable("Table1");
        dt1.Columns.Add(
"ID");
        dt1.Columns.Add(
"产品");
        dt1.Columns.Add(
"数量");
        dt1.Columns.Add(
"日期");
        dt1.Columns.Add(
"状态");
        
for (int i = 0; i < GridView1.Rows.Count; i++)
        
{
            GridViewRow gRow 
= GridView1.Rows[i];
            DataRow newRow 
= dt1.NewRow();
            newRow[
0= GridView1.DataKeys[i].Value;
            newRow[
1= ((TextBox)gRow.FindControl("TextBox1")).Text;
            newRow[
2= ((TextBox)gRow.FindControl("TextBox2")).Text;
            newRow[
3= ((TextBox)gRow.FindControl("TextBox3")).Text;
            newRow[
4= ((DropDownList)gRow.FindControl("DropDownList1")).SelectedValue;
            dt1.Rows.Add(newRow);
        }

        dt1.AcceptChanges();
        
return dt1;
    }


    
protected void Button1_Click(object sender, EventArgs e)
    
{
        DataTable dt 
= this.GetDataFromGrid();
        DataRow newRow 
= dt.NewRow();
        newRow[
"状态"= "1";
        dt.Rows.Add(newRow);
        
this.GridView1.DataSource = dt;
        
this.GridView1.DataBind();
    }

    
protected void Button2_Click(object sender, EventArgs e)
    
{
        DataTable dt 
= this.GetDataFromGrid();
        
foreach (DataRow row in dt.Rows)
        
{
            
if (row["ID"!= null)
            
{
                
//更新该行记录到数据库
            }

            
else
            
{
                
//插入该行记录到数据库
            }

        }

    }

}

原创粉丝点击