---
title: "Dynamic TextBox in GridView"  
description: "Dynamic TextBox in GridView"  
author: "Manish Pandey"  
published: 2014-11-28  
updated: 2014-11-29  
canonical: https://www.mindstick.com/forum/12714/dynamic-textbox-in-gridview  
category: ".net"  
tags: ["c#"]  
reading_time: 3 minutes  

---

# Dynamic TextBox in GridView

Hello Frnds\
I want to [add](https://www.mindstick.com/forum/12983/add-address-in-textbox-when-page-is-load-and-if-i-search-address-in-textbox-show-in-map-by-javascript) textboxes in [GridView](https://www.mindstick.com/articles/873/update-delete-edit-gridview-in-asp-dot-net) dynamically \
and want to [fetch](https://www.mindstick.com/forum/156159/what-is-google-fetch) entered [value](https://www.mindstick.com/articles/23219/an-optimized-description-adds-value-to-experience-and-in-turn-effectively-guest-posting-packages) on [button click](https://www.mindstick.com/forum/790/form-gets-submiited-twice-on-button-click)\
How should i do it ??\

## Replies

### Reply by Anonymous User

hi try this code:\
**Default.aspx code:**\

```
<asp:gridview ID="Gridview1" runat="server" ShowFooter="true" AutoGenerateColumns="false" onrowcreated="Gridview1_RowCreated" OnSelectedIndexChanged="Gridview1_SelectedIndexChanged">            <Columns>            <asp:BoundField DataField="RowNumber" HeaderText="Row Number" />            <asp:TemplateField HeaderText="Header
1">                <ItemTemplate>                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>                </ItemTemplate>            </asp:TemplateField>            <asp:TemplateField HeaderText="Header
2">                <ItemTemplate>                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>                </ItemTemplate>            </asp:TemplateField>            <asp:TemplateField HeaderText="Header
3">                <ItemTemplate>                     <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>                </ItemTemplate>                <FooterStyle HorizontalAlign="Right" />                <FooterTemplate>                 <asp:Button ID="ButtonAdd" runat="server" Text="Add New Row" onclick="ButtonAdd_Click" />                </FooterTemplate>            </asp:TemplateField>            </Columns>        </asp:gridview>
```

## Default.aspx.cs Code:

```
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.Specialized;using System.Text;using System.Data.SqlClient; public partial class GridViewWithTextBoxes : System.Web.UI.Page{    private void SetInitialRow()    {        DataTable dt = new DataTable();        DataRow dr = null;        dt.Columns.Add(new DataColumn("RowNumber", typeof(string)));        dt.Columns.Add(new DataColumn("Column1", typeof(string)));        dt.Columns.Add(new DataColumn("Column2", typeof(string)));        dt.Columns.Add(new DataColumn("Column3", typeof(string)));        dr = dt.NewRow();        dr["RowNumber"] = 1;        dr["Column1"] = string.Empty;        dr["Column2"] = string.Empty;        dr["Column3"] = string.Empty;        dt.Rows.Add(dr);        ViewState["CurrentTable"]
= dt;         Gridview1.DataSource = dt;        Gridview1.DataBind();    }     private void AddNewRowToGrid()    {        int rowIndex = 0;         if (ViewState["CurrentTable"] != null)        {            DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];            DataRow drCurrentRow = null;            if (dtCurrentTable.Rows.Count > 0)            {                for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)                {                    TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("TextBox1");                    TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("TextBox2");                    TextBox box3 = (TextBox)Gridview1.Rows[rowIndex].Cells[3].FindControl("TextBox3");                     drCurrentRow =
dtCurrentTable.NewRow();                    drCurrentRow["RowNumber"] = i +
1;                    drCurrentRow["Column1"] =
box1.Text;                    drCurrentRow["Column2"] =
box2.Text;                    drCurrentRow["Column3"] =
box3.Text;                     rowIndex++;                }               
dtCurrentTable.Rows.Add(drCurrentRow);                ViewState["CurrentTable"]
= dtCurrentTable;                 Gridview1.DataSource =
dtCurrentTable;                Gridview1.DataBind();            }        }        else        {            Response.Write("ViewState is null");        }         SetPreviousData();    }     private void SetPreviousData()    {        int rowIndex = 0;        if (ViewState["CurrentTable"] != null)        {            DataTable dt = (DataTable)ViewState["CurrentTable"];            if (dt.Rows.Count > 0)            {                for (int i = 1; i < dt.Rows.Count; i++)                {                    TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("TextBox1");                    TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("TextBox2");                    TextBox box3 = (TextBox)Gridview1.Rows[rowIndex].Cells[3].FindControl("TextBox3");                     box1.Text = dt.Rows[i]["Column1"].ToString();                    box2.Text = dt.Rows[i]["Column2"].ToString();                    box3.Text = dt.Rows[i]["Column3"].ToString();                     rowIndex++;                 }            }         }    }    protected void Page_Load(object sender, EventArgs e)    {        if (!Page.IsPostBack)        {            SetInitialRow();        }    }    protected void ButtonAdd_Click(object sender, EventArgs e)    {        AddNewRowToGrid();    }    protected void Button1_Click(object sender, EventArgs e)    {        int rowIndex = 0;        StringCollection sc = new StringCollection();        if (ViewState["CurrentTable"] != null)        {            DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];            if (dtCurrentTable.Rows.Count > 0)            {                for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)                {                    TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("TextBox1");                    TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("TextBox2");                    TextBox box3 = (TextBox)Gridview1.Rows[rowIndex].Cells[3].FindControl("TextBox3");                        sc.Add(box1.Text + "," +
box2.Text + "," + box3.Text);                    rowIndex++;                }            }        }    }     protected void Gridview1_RowCreated(object sender, GridViewRowEventArgs e)    {         if (e.Row.RowType == DataControlRowType.DataRow)        {            Label l = (Label)e.Row.FindControl("Label1");            if (l != null)            {                string script = "window.open('Default.aspx');";                l.Attributes.Add("onclick",
script);            }        }    }    protected void Gridview1_SelectedIndexChanged(object sender, EventArgs e)    {     }}
```


---

Original Source: https://www.mindstick.com/forum/12714/dynamic-textbox-in-gridview

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
