This Way:
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="UserName">
<ItemTemplate>
<asp:TextBox ID="txtUserName" runat="server" Text='<%# Eval("UserName") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="FirstName">
<ItemTemplate>
<asp:TextBox ID="txtFirstName" runat="server" Text='<%# Eval("FirstName") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="LastName">
<ItemTemplate>
<asp:TextBox ID="txtLastName" runat="server" Text='<%# Eval("LastName") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Location">
<ItemTemplate>
<asp:TextBox ID="txtLocation" runat="server" Text='<%# Eval("Location") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button Text="Save" OnClick="Save" runat="server" />
</div>
</form>
C#:
public class UserDetails
{
string userName = string.Empty;
string firstName = string.Empty;
string lastName = string.Empty;
string location = string.Empty;
public string UserName
{
get { return userName; }
set { userName = value; }
}
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
public string LastName
{
get { return lastName; }
set { lastName = value; }
}
public string Location
{
get { return location; }
set { location = value; }
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[4] { new DataColumn("UserName", typeof(string)),
new DataColumn("FirstName", typeof(string)),
new DataColumn("LastName",typeof(string)),
new DataColumn("Location",typeof(string))});
dt.Rows.Add("John Hammond", "John ", "Hammond", "United States");
dt.Rows.Add("Mudassar Khan", "Mudassar", " Khan", "India");
dt.Rows.Add("Suzanne Mathews", "Suzanne", " Mathews", "France");
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
protected void Save(object sender, EventArgs e)
{
List<UserDetails> userDetails = new List<UserDetails>();
UserDetails userDetail = new UserDetails();
foreach (GridViewRow row in this.GridView1.Rows)
{
userDetail.UserName = (row.FindControl("txtUserName") as TextBox).Text;
userDetail.FirstName = (row.FindControl("txtFirstName") as TextBox).Text;
userDetail.LastName = (row.FindControl("txtLastName") as TextBox).Text;
userDetail.Location = (row.FindControl("txtLocation") as TextBox).Text;
userDetails.Add(userDetail);
}
}
Namespace
using System.Data;