一个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>


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;
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;
    }

}

posted @ 2008-03-04 13:25  N/A2011  阅读(497)  评论(0编辑  收藏  举报