|
Posted on
2006-10-09 00:03
liufu627
阅读( 665)
评论()
收藏
举报
![]() <% @ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
![]()
<!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>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gvMain" runat="server" AutoGenerateColumns="false" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblCode" runat="server" Text='<%# Eval("Code") %>' ></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlCode" runat="server" DataValueField="Code" DataTextField="Code"></asp:DropDownList>
<asp:HiddenField ID="hfCode" Value='<%# Eval("Code") %>' runat="server" />
</EditItemTemplate>
<HeaderTemplate>Code</HeaderTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnEdit" Text="Edit" runat="server" />
<asp:Button ID="btnDelete" Text="Delete" runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:Button ID="btnUpdate" Text="Update" CommandName="Update" runat="server" />
<asp:Button ID="btnCancel" Text="Cancel" CommandName="Cancel" runat="server" />
</EditItemTemplate>
<HeaderTemplate>Action</HeaderTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
![]()
以下后台代码
using System;
using System.Data;
using System.Configuration;
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;
using System.Collections.Generic;
using System.Reflection;
![]()
public partial class _Default : System.Web.UI.Page
![]() ![]() {
protected void Page_Load(object sender, EventArgs e)
![]() {
if( Page.IsPostBack == false )
![]() {
this.gvMain.DataSource = GetData( );
this.gvMain.DataBind( );
}
AddMarket( );
}
![]()
private void AddMarket( )
![]() {
GridViewRow row = new GridViewRow( this.gvMain.Rows.Count , this.gvMain.Rows.Count , DataControlRowType.Separator , DataControlRowState.Normal );
foreach( DataControlField dataColumn in gvMain.Columns )
![]() {
![]()
DataControlFieldCell cell = new DataControlFieldCell( dataColumn );
![]()
dataColumn.InitializeCell( cell , DataControlCellType.DataCell , DataControlRowState.Normal , this.gvMain.Rows.Count );
![]()
Label lblCode = null;
foreach( Control control in cell.Controls )
![]() {
if( control == null || control.UniqueID == null )
continue;
if( control.UniqueID.Trim( ).ToUpper( ) == "lblCode".Trim( ).ToUpper( ) )
![]() {
lblCode = ( Label ) control;
}
}
![]()
![]()
if( lblCode != null )
![]() {
lblCode.Text = "Liufu";
}
row.Cells.Add( cell );
//row.Parent = this.gvMain.Rows [0].Parent;
this.gvMain.Rows [0].Parent.Controls.Add( row );
}
Table tb = ( Table ) gvMain.Controls [0];
tb.Rows.AddAt( gvMain.Rows.Count + 1 , row );
this.gvMain.FooterRow.Parent.Controls.AddAt( 0 , row );
this.SaveControlState( );
this.SaveViewState( );
GridViewRow [] rows = new GridViewRow [gvMain.Rows.Count + 1 ];
rows [rows.Length - 1] = row;
this.gvMain.Rows.CopyTo( rows , 0 );
System.Collections.ArrayList list = new System.Collections.ArrayList( );
foreach( GridViewRow tmp in rows )
![]() {
list.Add( tmp );
}
// this._rowsCollection = new GridViewRowCollection(this._rowsArray);
![]()
Type typeGridView = gvMain.GetType( );
![]()
FieldInfo [] ms = typeGridView.GetFields( BindingFlags.DeclaredOnly | BindingFlags.NonPublic
| BindingFlags.Instance | BindingFlags.CreateInstance
);
![]()
foreach( FieldInfo m in ms )
![]() {
if( m.Name.Trim( ).ToUpper( ) == "_rowsCollection".Trim( ).ToUpper( ) )
![]() {
m.SetValue( gvMain , new GridViewRowCollection( list ) );
![]()
}
![]()
}
![]()
}
![]()
protected object GetData( )
![]() {
List<TestSource> lists = new List<TestSource>( );
int length = 10;
for( int i = 0 ; i < length ; i++ )
![]() {
TestSource t = new TestSource( );
t.Code = string.Format( "Code{0}{0}{0}{0}" , i );
lists.Add( t );
}
return lists;
}
public class TestSource
![]() {
private string code;
![]()
public string Code
![]() {
get
![]() {
return code;
}
set
![]() {
code = value;
}
}
![]()
}
}
![]()
public class Test
![]() ![]() {
public string test = "test";
![]()
void Foo( )
![]() {
test = "Foo";
}
![]()
}
![]()
![]()
|