Home > DeveloperSection > Forums > Dynamic TextBox in GridView
Manish Pandey

Total Post:1

Points:7
Posted on    November-28-2014 5:59 AM

 .NET C# 
Ratings:


 1 Reply(s)
 804  View(s)
Rate this:
Hello Frnds
I want to add textboxes in GridView dynamically
and want to fetch entered value on button click
How should i do it ??


Kamlakar Singh
Kamlakar Singh

Total Post:194

Points:1396
Posted on    November-29-2014 7:12 AM

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)

    {

 

    }

}


Don't want to miss updates? Please click the below button!

Follow MindStick