DYNAMIC TEXTBOX IN GRIDVIEW

Manish Pandey

Total Post:1

Points:7
Posted by  Manish Pandey
C# 
 1145  View(s)
Ratings:
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 ??
  1. Kamlakar Singh

    Post:194

    Points:1396
    Re: Dynamic TextBox in GridView

    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)

        {

     

        }

    }

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!