Blog

Add dynamic row using Repeater

By Pankaj Rana Blogs | ASP.NET Programming Feb 02, 2013
In this content there is the example of how to add new dynamic row on click of add new button to enter new entry using repeater control.
Download Files: RepeterDynamicContro

Create dynamic row using repeater control

Here there are four textboxs enter employee details. We can add employee detail one by one using add new button to add new row for entry. 

 <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="RepeterDynamicControls._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:ScriptManager ID="scriptManager" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="upPanael" runat="server">
    <ContentTemplate>
        <div><div>
            <table>
                <tr>
                    <th>
                        &nbsp;
                    </th>
                    <th>
                        Employee Name
                    </th>
                    <th>
                        Adderss
                    </th>
                    <th>
                        City
                    </th>
                    <th>
                        Email
                    </th>
                </tr>
                 <asp:Repeater ID="rptEmployee" runat="server">
                        <ItemTemplate>
                          <tr>
                            <td>
                                 &nbsp;
                            </td>
                            <td>
                                <asp:TextBox ID="TextBox1" runat="server" 
                                 Width="150px" MaxLength="50" Text='<%#Eval("EmpName") %>'>
</asp:TextBox>
                            </td>
                            <td>
                                 <asp:TextBox ID="TextBox2" runat="server" 
                                  Width="150px" MaxLength="50" Text='<%#Eval("Address") %>'>
</asp:TextBox>
                            </td>
                            <td>
                                <asp:TextBox ID="TextBox3" runat="server" 
                                Width="150px" MaxLength="50" Text='<%#Eval("City") %>'>
</asp:TextBox>
                            </td>
                            <td>
                                 <asp:TextBox ID="TextBox4" runat="server" 
                                  Width="150px" MaxLength="50" Text='<%#Eval("Email") %>'>
</asp:TextBox>
                            </td>
                        </tr>
                     </ItemTemplate>
                   </asp:Repeater>
                <tr>
                    <td>
                       <asp:Button ID="btnAdd" runat="server" 
                       Text="Add New" onclick="btnAdd_Click" />
                    </td>
                    <td>
                        <asp:TextBox ID="txtEmpName" runat="server" 
                        Width="150px" MaxLength="50"></asp:TextBox>
                    </td>
                    <td>
                         <asp:TextBox ID="txtAddress" runat="server" 
                         Width="150" MaxLength="50"></asp:TextBox>
                    </td>
                    <td>
                        <asp:TextBox ID="txtCity" runat="server" 
                        Width="150px" MaxLength="50"></asp:TextBox>
                    </td>
                    <td>
                         <asp:TextBox ID="txtEmail" runat="server" 
                         Width="150px" MaxLength="50"></asp:TextBox>
                    </td>
                </tr>
                  
            </table>
        </div>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>
</asp:Content>

Default.aspx.cs
 
using System;
using System.Web; 

using System.Web.UI;
using
 System.Web.UI.WebControls;
using
 System.Data;

namespace RepeterDynamicControls
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            DataTable dtEmployee = new DataTable();
            dtEmployee = GetEmployee();

            if (ViewState["EmployeeTable"] != null)
            {
                dtEmployee = (DataTable)ViewState["EmployeeTable"];

 
                rptEmployee.DataSource = dtEmployee;
                rptEmployee.DataBind();
                rptEmployee.Visible = true;
            }
            else
            {
                rptEmployee.DataSource = null;
                rptEmployee.DataBind();
                rptEmployee.Visible = false;
            }
            txtEmpName.Text = string.Empty;
            txtEmail.Text = string.Empty;
            txtCity.Text = string.Empty;
            txtAddress.Text = string.Empty;
        }

        private DataTable GetEmployee()
        {

            DataTable dtEmployee = null;
            if (ViewState["EmpID"] != null)
            {
                int EmpID = Convert.ToInt32((ViewState["EmpID"]));
                EmpID++;
                ViewState["EmpID"] = EmpID;
            }
            else
            {
                ViewState["EmpID"] = 1;
            }

            if (ViewState["EmployeeTable"] == null)
            {
                dtEmployee = new DataTable("EmployeeTable");
                dtEmployee.Columns.Add(new DataColumn("EmpID"typeof(int)));
                dtEmployee.Columns.Add(new DataColumn("EmpName"typeof(string)));
                dtEmployee.Columns.Add(new DataColumn("Address"typeof(string)));
                dtEmployee.Columns.Add(new DataColumn("City"typeof(string)));
                dtEmployee.Columns.Add(new DataColumn("Email"typeof(string)));

                ViewState["EmployeeTable"] = dtEmployee;
            }
            else
            {
                dtEmployee = (DataTable)ViewState["EmployeeTable"];
            }
            DataRow dtRow = dtEmployee.NewRow();

            dtRow["EmpID"] = Convert.ToInt32(ViewState["EmpID"]);
            dtRow["EmpName"] = txtEmpName.Text.Trim();
            dtRow["Address"] = txtAddress.Text.Trim();
            dtRow["City"] = txtCity.Text.Trim();
            dtRow["Email"] = txtEmail.Text.Trim();
 
            dtEmployee.Rows.Add(dtRow);
 
            ViewState["EmployeeTable"] = dtEmployee;
 
           return dtEmployee;
        }
    }
}

PREMIUM SPONSORS

Hire Mobile & Web Developer on demand. 100% satisfaction. Try for 1 week or Money Back. Local and remote developers available all over USA.

Latest Blogs