ARTICLE

N-Tire Web Application Sample

Posted by Vipin Yadav Articles | Internet & Web May 26, 2010
In this simple article we will see a sample of n-tier web application.
Reader Level:
Download Files:
 

A sample of simple web n-tire application, which can be used in small web application. And can be enhanced to use in complex web applications.

  1. Presentation Layer
  2. Business Layer
  3. Data Access Layer

1.gif 

Business & Data Access Class Diagram:

2.gif 

Application output screen:

3.gif

Code:

Default.aspx.cs

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                BindGrid();
            }
        }
        public void BindGrid()
        {
          DataSet ds = Customer.GetCustomers();
          MyDataGrid.DataSource = ds;
          MyDataGrid.DataBind();
        }
        protected void ButSave_Click(object sender, EventArgs e)
        {
            try
            {
                Customer newCustomer = new Customer();
                newCustomer.Name = TextName.Text;
                newCustomer.Mobile = TextMobile.Text;
                newCustomer.City = TextCity.Text;
                newCustomer.Address = TextAddress.Text;
                newCustomer.DOB = Convert.ToDateTime(TextDOB.Text);
                newCustomer.SaveNew();
                BindGrid();
            }
            catch (Exception ex)
            {
                LblErrMess.Text = ex.Message;
            }
        }
        protected void ButShowGrid_Click(object sender, EventArgs e)
        {
            if (MyDataGrid.Visible)
            {
                ButShowGrid.Text = "Show Grid";
                MyDataGrid.Visible = false;
            }
            else
            {
                ButShowGrid.Text = "Hide Grid";
                MyDataGrid.Visible = true;
            }
        }
        protected void MyDataGrid_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
              e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='#C2D5FC'");
              e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='white'");
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            foreach (DataGridItem item in MyDataGrid.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    if (((CheckBox)item.Cells[6].FindControl("cbRows")).Checked)
                    {
                        Customer.DeleteMe(Convert.ToInt32(item.Cells[0].Text));
                    }
                }
            }
            BindGrid();
        }
        protected void MyDataGrid_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
        {
            MyDataGrid.CurrentPageIndex = e.NewPageIndex;
            BindGrid();
        }
        protected void MyDataGrid_ItemCommand(object source, DataGridCommandEventArgs e)
        {
            if (e.CommandName == "Update")
            {
                TextCustomerId.Text = e.Item.Cells[0].Text;
                TextName.Text = e.Item.Cells[1].Text;
                TextCity.Text = e.Item.Cells[2].Text;
                TextMobile.Text = e.Item.Cells[3].Text;
                TextAddress.Text = e.Item.Cells[4].Text;
                TextDOB.Text = e.Item.Cells[5].Text;
                ButSave.Enabled = false;
                TextName.Focus();
            }
        }
        protected void ButUpdate_Click(object sender, EventArgs e)
        {
            Customer Cust = new Customer();
            Cust.CustomerId = Convert.ToInt32(TextCustomerId.Text);
            Cust.Mobile = TextMobile.Text;
            Cust.City = TextCity.Text;
            Cust.Name = TextName.Text;
            Cust.Address = TextAddress.Text;
            Cust.DOB = Convert.ToDateTime(TextDOB.Text);
            Cust.UpdateMe();
            ButSave.Enabled = true;
            ButUpdate.Enabled = false;
            TextCustomerId.Text = "";
            TextName.Text = "";
            TextCity.Text = "";
            TextMobile.Text = "";
            TextAddress.Text = "";
            TextDOB.Text = "";
            BindGrid();
        }
    }

Default.aspx:

<script type="text/javascript" language="javascript">
function DeleteConfirmation()
{
if (confirm("Are you sure, you want to delete selected records ?")==true)
   return true;
else
   return false;
}
function CheckAll(chk)
{
all = document.getElementsByTagName("input");
for(i=0;i<all.length;i++)
    {
      if(all[i].type=="checkbox" && all[i].id.indexOf("MyDataGrid_ct") > -1)
      {
        all[i].checked = chk.checked;
      }
    }
}
</script>
<asp:DataGrid ID="MyDataGrid" AutoGenerateColumns="false" runat="server"
       AllowPaging="true" PagerStyle-Mode="NextPrev" al
           onitemdatabound="MyDataGrid_ItemDataBound" ShowFooter="true"
           onpageindexchanged="MyDataGrid_PageIndexChanged" PageSize="6" onitemcommand="MyDataGrid_ItemCommand">
  <Columns>
  <asp:BoundColumn HeaderText="CustomerId" DataField="CustomerId"></asp:BoundColumn>
  <asp:BoundColumn HeaderText="Name"  DataField="Name"></asp:BoundColumn>
  <asp:BoundColumn HeaderText="City"  DataField="City"></asp:BoundColumn>
  <asp:BoundColumn HeaderText="Mobile"  DataField="Mobile"></asp:BoundColumn>
  <asp:BoundColumn HeaderText="Address"  DataField="Address"></asp:BoundColumn>
  <asp:BoundColumn HeaderText="Date Of Birth" DataFormatString="{0:MM/dd/yyyy}"    DataField="DOB"></asp:BoundColumn>
  <asp:TemplateColumn>
      <ItemTemplate>
        <asp:CheckBox ID="cbRows" runat="server"/>
      </ItemTemplate>
      <HeaderTemplate>
        <input type="checkbox" id="mainCB" onclick="javascript:CheckAll(this);" />
      </HeaderTemplate>
      <FooterTemplate>
        <asp:Button ID="btnDelete" runat="server" Text="Delete"   OnClick="Button1_Click"   OnClientClick="return DeleteConfirmation();"/>      </FooterTemplate>
  </asp:TemplateColumn>
<asp:ButtonColumn  ButtonType="PushButton" CommandName="Update" Text="Edit">
</asp:ButtonColumn>
  </Columns>
  </asp:DataGrid>

Login to add your contents and source code to this article
post comment
     

Hi, is it possible me to have the DB Backup of your sample?

Posted by aruna perera Mar 05, 2013

thanks y!

Posted by luyen quang May 27, 2010
COMMENT USING
PREMIUM SPONSORS
Over-C is a holistic consortium of communications and technology specialists. We build, deploy and market both business as well as consumer products and solutions.
Get Career Advice from Experts
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.
Get Career Advice from Experts