GridView 에서 FindControl 사용 하기

       FindControl GridView,           ,    。  
  
1、   (SelectedIndexChanged)       
  
  
     //       TextBox1   
    protected void gv1_SelectedIndexChanged(object sender, EventArgs e)  
    {  
        //Control c = this.gv1.Rows[this.gv1.SelectedIndex].FindControl("TextBox1");   
        //TextBox tb = (TextBox)c;   
        //tb.Text = "TextBox";   
  
        TextBox tb = (TextBox)this.gv1.Rows[this.gv1.SelectedIndex].FindControl("TextBox1");  
        tb.Text = "hello";  
    }  
  
2、    (RowEditing)       
  
     
    //    ,  TextBox1   
    protected void gv1_RowEditing(object sender, GridViewEditEventArgs e)  
    {  
        //            
        gv1.EditIndex = e.NewEditIndex;  
        GridViewBind();  
  
        TextBox tb = (TextBox)this.gv1.Rows[e.NewEditIndex].FindControl("TextBox1");  
        Response.Write(tb.Text);  
    }  
  
  
3、      (RowCancelingEdit)       
  
    //     ,  TextBox1   
    protected void gv1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)  
    {  
        TextBox tb = (TextBox)this.gv1.Rows[e.RowIndex].FindControl("TextBox1");  
        Response.Write(tb.Text);  
  
        gv1.EditIndex = -1;  
        GridViewBind();  
    }  
  
4、    (RowDataBound)       
  
      
  
    //         TextBox1   
    protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e)  
    {  
        //    RowDataBound Find,   if (e.Row.RowType == DataControlRowType.DataRow)   Find   ,  Find    HeaderTemplate  ,       , HeaderTemplate    ,     null,      ,DataControlRowType    DataRow      .   
        //if (e.Row.RowType == DataControlRowType.DataRow)   
        //{   
        //    TextBox tb = (TextBox)e.Row.FindControl("TextBox1");   
        //    tb.Text = "databind";   
        //}   
  
  
        //   DataGrid      :   
  
        //if (e.Row.RowType == DataControlRowType.Header)   
        //{   
        //    TextBox tbheader = (TextBox)e.Row.FindControl("txtHeader");   
        //    tbheader.Text = "Head";   
        //}   
        ((TextBox)this.gv1.Controls[0].Controls[0].FindControl("txtHeader")).Text = "Head";  
  
        if (e.Row.RowType == DataControlRowType.Footer)  
        {  
            TextBox tbfooter = (TextBox)e.Row.FindControl("txtFooter");  
            tbfooter.Text = "Footer";  
        }  
    }  
  
5、    (RowCommand)       
  
       
  
    //        TextBox1   
    //    GridView     ,e.CommandArgument        Index,       gridview1.Rows[Convert.ToInt32(e.CommandArgument)].FindControl("xxx")    ,       Template,e.CommandArgument          ,      ,   <ItemTemplate></ItemTemplate>   CommandArgument="<%# ((GridViewRow) Container).RowIndex %>",      Index      e.CommandArgument    .   
    protected void gv1_RowCommand(object sender, GridViewCommandEventArgs e)  
    {  
        if (e.CommandName.ToLower() == "change")  
        {  
            TextBox tb = (TextBox)this.gv1.Rows[Convert.ToInt32(e.CommandArgument)].FindControl("TextBox1");  
              
            Response.Write(tb.Text);  
        }  
    }  
  
        ,          
  
  ,    :UseTest3.aspx  
  
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UseTest3.aspx.cs" Inherits="UseTest3" %>  
  
<!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="gv1" runat="server" AutoGenerateColumns="False" OnSelectedIndexChanged="gv1_SelectedIndexChanged" OnRowEditing="gv1_RowEditing" OnRowDataBound="gv1_RowDataBound" ShowFooter="True" OnRowCommand="gv1_RowCommand" DataKeyNames="employeeid" OnRowCancelingEdit="gv1_RowCancelingEdit">  
        <Columns>  
        <asp:TemplateField>  
            <HeaderTemplate>  
                <asp:TextBox ID="txtHeader" runat="Server"></asp:TextBox>  
            </HeaderTemplate>  
            <ItemTemplate>  
                <asp:TextBox ID="TextBox1" Text='<%# Bind("employeeid")%>' runat="server"></asp:TextBox>               
            </ItemTemplate>  
            <FooterTemplate>  
                <asp:TextBox ID="txtFooter" runat="server"></asp:TextBox>  
            </FooterTemplate>  
        </asp:TemplateField>  
        <asp:BoundField DataField="lastname" HeaderText="LastName" />  
        <asp:BoundField DataField="firstname" HeaderText="FirstName" />  
        <asp:ButtonField CommandName="select" Text="  " />       
        <asp:ButtonField CommandName="change" Text="change" />  
            <asp:CommandField ShowEditButton="True" />  
        </Columns>  
        </asp:GridView>  
         </div>  
    </form>  
</body>  
</html>  

좋은 웹페이지 즐겨찾기