2016-08-06 27 views
1

Ich habe eine Gridview und ich habe wenige Datensätze und ich habe eine Tabellenzelle an der Spitze innerhalb der Gridview mit einem Textfeld und einer Schaltfläche, um die Datensätze zu filtern. Wie finde ich die Kontrolle über diese Textbox?htWie Steuerelement des Textfelds in der Tabellenzelle zu finden, die in Gridview ist

protected void GridView2_RowCreated(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.Header) 
     { 
      GridViewRow HeaderGridRow = new GridViewRow(0, 1, DataControlRowType.Header, DataControlRowState.Normal); 
      TableCell HeaderCell = new TableCell(); 

      HeaderCell.Text = ""; 
      TextBox abc = new TextBox(); 
      HeaderCell.Controls.Add(abc); 
      HeaderCell.ColumnSpan = 3; 
      HeaderGridRow.Cells.Add(HeaderCell); 

      HeaderCell = new TableCell(); 
      HeaderCell.Text = ""; 
      TextBox search = new TextBox(); 
      search.ID = "search1"; 
      HeaderCell.Controls.Add(search); 
      HeaderCell.ColumnSpan = 3; 
      HeaderGridRow.Cells.Add(HeaderCell); 
      Control ctrl = HeaderGridRow.Cells[1].Controls[0]; 
      TextBox tc = ctrl as TextBox; 


      HeaderCell = new TableCell(); 

      Button btn_chk = new Button(); 
      btn_chk.Text = "go"; 
      HeaderCell.Controls.Add(btn_chk); 
      HeaderCell.ColumnSpan = 1; 
      btn_chk.Click += new EventHandler(btnClick); 
      HeaderGridRow.Cells.Add(HeaderCell); 

      //btn_chk.CommandName = "btn_chk"; 

      GridView2.Controls[0].Controls.AddAt(0, HeaderGridRow); 


     } 
    } 

     html part 

     <asp:GridView ID="GridView2" runat="server"   OnRowCreated="GridView2_RowCreated"> 
        <Columns> 
         <asp:TemplateField> 

    <%-- <HeaderTemplate> 
    Planning Id<br /> 
     <asp:TextBox ID="txt_planningid" runat="server"></asp:TextBox> 
    </HeaderTemplate>--%>      
          <HeaderTemplate> 
           <asp:Label ID="Label9" runat="server" Text="S.No"></asp:Label> 
          </HeaderTemplate> 

          <ItemTemplate> 
           <asp:Label ID="Label8" runat="server" Text="<%#Container.DataItemIndex+1 %> "></asp:Label> 
          </ItemTemplate> 

         </asp:TemplateField> 

        </Columns> 

       </asp:GridView> 

Ich habe zwei Textfelder hinzugefügt und eine Knopfzelle mit Tabelle in RowCreated Ereignis ..

+0

Haben Sie gesehen, http://stackoverflow.com/questions/1965835/find-control-inside-grid-row – Computer

+0

Ja, ich habe checked.gridview.rows [] gibt die Anzahl der Zeilen von records.i wollen Kontrolle des Textfelds, das über dem Header-Teil von gridview.ini liegt, möchte ich dieses Textfeld verwenden, um die Datensätze in der Gridview zu filtern. – nimmy

+0

Konnten Sie Ihre HTML – Computer

Antwort

0

Ich denke, das ist, was Sie nach,

hinzufügen RowDataBound Termin in Ihrem Gridview

OnRowDataBound="GridView2_RowDataBound" 

das Ereignis Behandeln Sie das RowDataBound Ereignis verwenden und die Textbox finden:

protected void GridView2_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) 
{ 

    if (e.Row.RowType == DataControlRowType.Header) 
    { 
     // Find the textbox 
     TextBox abc = (TextBox)e.Row.FindControl("abc"); 

    } 
} 
+0

tatsächlich in gridview GridView2 Zeile erstellt Ereignis Ich habe eine andere Gridview 'headergridrow' dynamisch erstellt, die eine Textbox innerhalb hat.Ich muss die Kontrolle über diese Textbox zu finden. – nimmy