Blog

Add dynamic row using Repeater

Posted 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.

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
MCN is your source for developing solutions involving websites, mobile apps, cloud-computing, databases, BI, back-end services and processes and client-server applications.
SPONSORED BY
  • MCN is your source for developing solutions involving websites, mobile apps, cloud-computing, databases, BI, back-end services and processes and client-server applications.