一个objectdatasource+gridview+multiple row update的例子
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!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>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ObjectDataSource SelectMethod="GetTests" TypeName="TestManager" ID="ObjectDataSource1" runat="server"></asp:ObjectDataSource>
<asp:GridView ID="GridView1" DataKeyNames="ID" DataSourceID="ObjectDataSource1"
runat="server" onrowdatabound="GridView1_RowDataBound" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<asp:Label runat="server" ID="lblID"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtName"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
</body>
</html>
<!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>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ObjectDataSource SelectMethod="GetTests" TypeName="TestManager" ID="ObjectDataSource1" runat="server"></asp:ObjectDataSource>
<asp:GridView ID="GridView1" DataKeyNames="ID" DataSourceID="ObjectDataSource1"
runat="server" onrowdatabound="GridView1_RowDataBound" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<asp:Label runat="server" ID="lblID"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtName"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
</body>
</html>
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
List<Test> l = new List<Test>();
foreach (GridViewRow row in this.GridView1.Rows)
{
int ID = Convert.ToInt32(this.GridView1.DataKeys[row.RowIndex].Value);
string Name = ((TextBox)row.FindControl("txtName")).Text+"rile";
Test t = new Test();
t.ID = ID;
t.Name = Name;
l.Add(t);
}
TestManager.Update(l[0], l[1]);
this.GridView1.DataBind();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Test t = (Test)e.Row.DataItem;
Label lblID = (Label)e.Row.FindControl("lblID");
lblID.Text = t.ID.ToString();
TextBox txtName = (TextBox)e.Row.FindControl("txtName");
txtName.Text = t.Name;
}
}
}
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
List<Test> l = new List<Test>();
foreach (GridViewRow row in this.GridView1.Rows)
{
int ID = Convert.ToInt32(this.GridView1.DataKeys[row.RowIndex].Value);
string Name = ((TextBox)row.FindControl("txtName")).Text+"rile";
Test t = new Test();
t.ID = ID;
t.Name = Name;
l.Add(t);
}
TestManager.Update(l[0], l[1]);
this.GridView1.DataBind();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Test t = (Test)e.Row.DataItem;
Label lblID = (Label)e.Row.FindControl("lblID");
lblID.Text = t.ID.ToString();
TextBox txtName = (TextBox)e.Row.FindControl("txtName");
txtName.Text = t.Name;
}
}
}
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
/// <summary>
/// Summary description for Test
/// </summary>
public class Test
{
private int _ID;
private string _Name;
public int ID
{
get
{
return this._ID;
}
set
{
this._ID = value;
}
}
public string Name
{
get
{
return this._Name;
}
set
{
this._Name = value;
}
}
}
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
/// <summary>
/// Summary description for Test
/// </summary>
public class Test
{
private int _ID;
private string _Name;
public int ID
{
get
{
return this._ID;
}
set
{
this._ID = value;
}
}
public string Name
{
get
{
return this._Name;
}
set
{
this._Name = value;
}
}
}
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
/// <summary>
/// Summary description for TestManager
/// </summary>
public class TestManager
{
public static Test t1;
public static Test t2;
public static List<Test> GetTests()
{
List<Test> l = new List<Test>();
if (t1 == null)
{
t1 = new Test();
t1.ID = 1;
t1.Name = "ri";
}
l.Add(t1);
if (t2 == null)
{
t2 = new Test();
t2.ID = 2;
t2.Name = "rio";
}
l.Add(t2);
return l;
}
public static void Update(Test t3, Test t4)
{
t1 = t3;
t2 = t4;
}
}
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
/// <summary>
/// Summary description for TestManager
/// </summary>
public class TestManager
{
public static Test t1;
public static Test t2;
public static List<Test> GetTests()
{
List<Test> l = new List<Test>();
if (t1 == null)
{
t1 = new Test();
t1.ID = 1;
t1.Name = "ri";
}
l.Add(t1);
if (t2 == null)
{
t2 = new Test();
t2.ID = 2;
t2.Name = "rio";
}
l.Add(t2);
return l;
}
public static void Update(Test t3, Test t4)
{
t1 = t3;
t2 = t4;
}
}