先不多说,看一段代码:
Default.aspx
1
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
Default.aspx.cs
"
Inherits
=
"
_Default
"
%>
2
3 <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
4 < html xmlns ="http://www.w3.org/1999/xhtml" >
5 < head runat ="server" >
6 < title ></ title >
7 </ head >
8 < body >
9 < form id ="F" runat ="server" >
10 < div >
11 < asp:GridView ID ="GV" runat ="server" Width ="250px" AutoGenerateColumns ="false" >
12 < Columns >
13 < asp:TemplateField HeaderText ="Name" >
14 < ItemTemplate >
15 < asp:TextBox ID ="tbName" runat ="server" Text ='<%#Bind("Name") % > '> </ asp:TextBox >
16 </ ItemTemplate >
17 </ asp:TemplateField >
18 < asp:TemplateField HeaderText ="Age" >
19 < ItemTemplate >
20 < asp:TextBox ID ="tbAge" runat ="server" Text ='<%#Bind("Age") % > '>
21 </ asp:TextBox ></ ItemTemplate >
22 </ asp:TemplateField >
23 </ Columns >
24 </ asp:GridView >
25 < br />
26 < asp:Button ID ="Button1" runat ="server" Text ="Save" Width ="143px"
27 onclick ="Button1_Click" />
28 </ div >
29 </ form >
30 </ body >
31 </ html >
32
2
3 <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
4 < html xmlns ="http://www.w3.org/1999/xhtml" >
5 < head runat ="server" >
6 < title ></ title >
7 </ head >
8 < body >
9 < form id ="F" runat ="server" >
10 < div >
11 < asp:GridView ID ="GV" runat ="server" Width ="250px" AutoGenerateColumns ="false" >
12 < Columns >
13 < asp:TemplateField HeaderText ="Name" >
14 < ItemTemplate >
15 < asp:TextBox ID ="tbName" runat ="server" Text ='<%#Bind("Name") % > '> </ asp:TextBox >
16 </ ItemTemplate >
17 </ asp:TemplateField >
18 < asp:TemplateField HeaderText ="Age" >
19 < ItemTemplate >
20 < asp:TextBox ID ="tbAge" runat ="server" Text ='<%#Bind("Age") % > '>
21 </ asp:TextBox ></ ItemTemplate >
22 </ asp:TemplateField >
23 </ Columns >
24 </ asp:GridView >
25 < br />
26 < asp:Button ID ="Button1" runat ="server" Text ="Save" Width ="143px"
27 onclick ="Button1_Click" />
28 </ div >
29 </ form >
30 </ body >
31 </ html >
32
后台代码:Default.aspx.cs
1
using
System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Web.UI;
6 using System.Web.UI.WebControls;
7
8 public class Person
9 {
10 public string Name { get ; set ; }
11 public int Age { get ; set ; }
12 }
13
14 public partial class _Default : System.Web.UI.Page
15 {
16 public List < Person > GetData()
17 {
18 return new List < Person >
19 {
20 new Person{Name = " CsharpFarmer " ,Age = 26 },
21 new Person{Name = " Rose " ,Age = 24 }
22 };
23 }
24
25 protected void Page_Load( object sender, EventArgs e)
26 {
27 GV.DataSource = this .GetData();
28 GV.DataBind();
29 }
30
31 protected void Button1_Click( object sender, EventArgs e)
32 {
33 var data = this .GetData();
34 data.Clear();
35 foreach (GridViewRow gvr in GV.Rows)
36 {
37 data.Add( new Person { Name = ((TextBox)gvr.FindControl( " tbName " )).Text, Age = int .Parse(((TextBox)gvr.FindControl( " tbAge " )).Text) });
38 }
39 GV.DataSource = data;
40 GV.DataBind();
41 }
42 }
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Web.UI;
6 using System.Web.UI.WebControls;
7
8 public class Person
9 {
10 public string Name { get ; set ; }
11 public int Age { get ; set ; }
12 }
13
14 public partial class _Default : System.Web.UI.Page
15 {
16 public List < Person > GetData()
17 {
18 return new List < Person >
19 {
20 new Person{Name = " CsharpFarmer " ,Age = 26 },
21 new Person{Name = " Rose " ,Age = 24 }
22 };
23 }
24
25 protected void Page_Load( object sender, EventArgs e)
26 {
27 GV.DataSource = this .GetData();
28 GV.DataBind();
29 }
30
31 protected void Button1_Click( object sender, EventArgs e)
32 {
33 var data = this .GetData();
34 data.Clear();
35 foreach (GridViewRow gvr in GV.Rows)
36 {
37 data.Add( new Person { Name = ((TextBox)gvr.FindControl( " tbName " )).Text, Age = int .Parse(((TextBox)gvr.FindControl( " tbAge " )).Text) });
38 }
39 GV.DataSource = data;
40 GV.DataBind();
41 }
42 }
取一段数据,然后绑定在GridView中,最后进行修改.
事实上无论我们怎么样点Save,我们会发现,数据始终没有变动,为什么呢?
要搞清这个问题,先看一下控件的生命周期.