GridView编辑时动态将值转给用户自定义控件

  在 GridView 中点编辑时,将当前的值转给用户控件。当然要在 GridView 中添加一个自定义控件,首先要将该列变成模板列。在编辑模板中添加一个自定义控件。
一个简单的自定义控件,里面只有一个控件 TextBox:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WUCTest.ascx.cs" Inherits="WUCTest" %>
<asp:TextBox ID="TextBox1" runat="server" BackColor="#C0FFFF"></asp:TextBox>
ContractedBlock.gif ExpandedBlockStart.gif 控件实现代码:
None.gifusing System;
None.gif
using System.Data;
None.gif
using System.Configuration;
None.gif
using System.Collections;
None.gif
using System.Web;
None.gif
using System.Web.Security;
None.gif
using System.Web.UI;
None.gif
using System.Web.UI.WebControls;
None.gif
using System.Web.UI.WebControls.WebParts;
None.gif
using System.Web.UI.HtmlControls;
None.gif
None.gif
public partial class WUCTest : System.Web.UI.UserControl
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
private string text;
InBlock.gif    
public string Text
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
ExpandedSubBlockStart.gifContractedSubBlock.gif        
get dot.gif{
InBlock.gif            GetText();
InBlock.gif            
return text;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockStart.gifContractedSubBlock.gif        
set dot.gif{
InBlock.gif            SetText();
InBlock.gif            text 
= value;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

InBlock.gif    
protected void Page_Load(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif    
private void GetText()
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        text
=TextBox1.Text.Trim();
ExpandedSubBlockEnd.gif    }

InBlock.gif    
private void SetText()
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        TextBox1.Text 
= text;
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif

GridView控件定义:

None.gif < asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="False"  OnRowEditing ="GridView1_RowEditing"  OnRowCancelingEdit ="GridView1_RowCancelingEdit"  OnRowCommand ="GridView1_RowCommand"  OnRowCreated ="GridView1_RowCreated"  OnRowDataBound ="GridView1_RowDataBound"  OnRowUpdating ="GridView1_RowUpdating" >
None.gif            
< Columns >
None.gif                
< asp:BoundField  DataField ="OrderID"   />
None.gif                
< asp:BoundField  DataField ="CustomerID"   />
None.gif                
< asp:BoundField  DataField ="EmployeeID"   />
None.gif                
< asp:BoundField  DataField ="OrderDate"   />
None.gif                
< asp:TemplateField >
None.gif                    
< EditItemTemplate >
None.gif                        
&nbsp; < uc1:WUCTest  ID ="WucCtrl"  runat ="server"  Text ='<%#  Bind("ShipName") % > ' />
None.gif                    
</ EditItemTemplate >
None.gif                    
< ItemTemplate >
None.gif                        
< asp:Label  ID ="LblTemp"  runat ="server"  Text ='<%#  Bind("ShipName") % > '> </ asp:Label >
None.gif                    
</ ItemTemplate >
None.gif                
</ asp:TemplateField >
None.gif                
< asp:BoundField  DataField ="ShipRegion"   />
None.gif                
< asp:CommandField  ShowEditButton ="True"   />
None.gif            
</ Columns >
None.gif        
</ asp:GridView >
None.gif
页面代码实现:
None.gif public  partial  class  _Default : System.Web.UI.Page 
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
protected void Page_Load(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
if (!IsPostBack)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            BindGvw();
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif    
//定义要传的值对象
InBlock.gif
    private string Text;
InBlock.gif    
private void BindGvw()
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        DataTable dt
=new DataTable ();
InBlock.gif        
string Connstr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString; 
InBlock.gif        SqlDataAdapter da
=new SqlDataAdapter ("select top 10 * from Orders",Connstr);
InBlock.gif        da.Fill (dt);
InBlock.gif        
this.GridView1.DataSource = dt;
InBlock.gif        
this.GridView1.DataBind();
InBlock.gif       
ExpandedSubBlockEnd.gif    }

InBlock.gif    
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
//保存要传递的值
InBlock.gif
        Text =((Label)GridView1.Rows[e.NewEditIndex].Cells[4].FindControl("LblTemp")).Text;
InBlock.gif        GridView1.EditIndex 
= e.NewEditIndex;
InBlock.gif        BindGvw();
ExpandedSubBlockEnd.gif    }

InBlock.gif   
InBlock.gif    
//在RowCreated实现传值
InBlock.gif
    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
string temp = e.Row.ToString();
InBlock.gif        
if ((e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//重点
InBlock.gif
           ((WUCTest)e.Row.FindControl("WucCtrl")).Text =Text;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

InBlock.gif    
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif    
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        GridView1.EditIndex 
= -1;
InBlock.gif        BindGvw();
ExpandedSubBlockEnd.gif    }

InBlock.gif

转载于:https://www.cnblogs.com/ruinet/archive/2007/08/01/839562.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值