Wednesday 1 May 2013

Add dynamic row using reapeter

Add dynamic row using reapeter

---------------------------------------------------------------
*.aspx
---------------------------------------------------------------
 <%@ 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>

--------------------------------------------------------------------------------------
*.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;
        }
    }
}