Showing posts with label FormView. Show all posts
Showing posts with label FormView. Show all posts

Monday, October 21, 2019

How to Work with FormView Control in Asp.net


FormView Control In Asp.net


This Article explain the FormView Control and its use in Asp.net program



# FormView

-         It is similar to DetailView
-         In it we can display single record
-         No rows or Column (Customised view and all Feature details)
-         Paging is inbuilt

# Templates applied

-         Item Template
-         Header Template
-         Footer Template
-         Edit Item Template
-         Pager Template
-         Insert Item Template
-         Empty Data Template

# Open Visual Studio and Make new Project

*Add new webform
*Toolbox > Data > FormView

#Coding

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using Microsoft.ApplicationBlocks.Data;


public partial class Default2 : System.Web.UI.Page
{
    String psg;
    protected void Page_Load(object sender, EventArgs e)
    {
        psg = ConfigurationManager.ConnectionStrings["ps"].ConnectionString;
        if (Page.IsPostBack == false)
        {
            Form_Bind();
        }
    }

    private void Form_Bind()
    {
        DataSet ds = SqlHelper.ExecuteDataset(psg, "dispemp");
        FormView1.DataSource = ds;
        FormView1.DataBind();
    }
}

# Design

*FormView> Tasklist> Edit Template

# Item template

Empno : Label > Edit Data Binding > Eval(“empno”)
Name : Label > Edit Data Binding > Eval(“ename”)
Address : Label > Edit Data Binding > Eval(“eadd”)
Salary : Label > Edit Data Binding > Eval(“esal”)
Add Link Button > Property > Text = Edit > Command Name= edit
Add Link Button > Property > Text = Delete> Command Name= delete
Add Link Button > Property > Text = New> Command Name= new

# Edit Item template

Empno : Label > Edit Data Binding > Eval(“empno”)
Name : TextBox > Edit Data Binding > Eval(“ename”)
Address : TextBox > Edit Data Binding > Eval(“eadd”)
Salary : TextBox > Edit Data Binding > Eval(“esal”)
Add Link Button > Property > Text = Update > Command Name= update
Add Link Button > Property > Text = Cancel> Command Name= cancel

# Insert Item template

Empno : TextBox
Name : TextBox
Address : TextBox
Salary : TextBox
Add Link Button > Property > Text = Insert > Command Name= insert
Add Link Button > Property > Text = Cancel> Command Name= cancel

# Empty Data Template

Add Button > Text = Add More Data > Command Name= new
#FormView > Properties> Allow paging= True

# FormView > Properties> Events > Page Index Changing

protected void FormView1_PageIndexChanging(object sender, FormViewPageEventArgs e)
    {
        FormView1.PageIndex = e.NewPageIndex;
        Form_Bind();
    }

 # Drawbacks of Inbuilt Paging

-         It will bind all the records in the table for example 200,000 but show one record
-         Low performance

# Mode Concept in FormView

In FormView there are 3 modes=
1.     Edit Mode= It will call Edit Item Template
2.     Insert Mode = It will call Insert Item Template
3.     Read Only Mode = It will call Item Template

# FormView > Properties> Events > Mode Changing

protected void FormView1_ModeChanging(object sender, FormViewModeEventArgs e)
    {
        FormView1.ChangeMode(e.NewMode);
        Form_Bind();
    }

# Save Code

* FormView > Properties> Events > Item Inserting
protected void FormView1_ItemInserting(object sender, FormViewInsertEventArgs e)
    {
        Int32 eno, es;
        String en, ed;
        eno = Convert.ToInt32(((TextBox)(FormView1.FindControl("TextBox4"))).Text);
        en = ((TextBox)(FormView1.FindControl("TextBox5"))).Text;
        ed = ((TextBox)(FormView1.FindControl("TextBox6"))).Text;
        es = Convert.ToInt32(((TextBox)(FormView1.FindControl("TextBox7"))).Text);
        Object[] ar = new Object[4];
        ar[0] = eno;
        ar[1] = en;
        ar[2] = ed;
        ar[3] = es;
        SqlHelper.ExecuteNonQuery(psg, "insemp", ar);
        FormView1.ChangeMode(FormViewMode.ReadOnly);
        Form_Bind();
    }

# For Update

* FormView > Properties> Events > Item Updating
protected void FormView1_ItemUpdating(object sender, FormViewUpdateEventArgs e)
    {
        Int32 eno, es;
        String en, ed;
        eno = Convert.ToInt32(((Label)(FormView1.FindControl("Label5"))).Text);
        en = ((TextBox)(FormView1.FindControl("TextBox1"))).Text;
        ed = ((TextBox)(FormView1.FindControl("TextBox2"))).Text;
        es = Convert.ToInt32(((TextBox)(FormView1.FindControl("TextBox3"))).Text);
        Object[] ar = new Object[4];
        ar[0] = eno;
        ar[1] = en;
        ar[2] = ed;
        ar[3] = es;
        SqlHelper.ExecuteNonQuery(psg, "updemp", ar);
        FormView1.ChangeMode(FormViewMode.ReadOnly);
        Form_Bind();
    }

# For Delete

* FormView > Properties> Events > Item Deleting
protected void FormView1_ItemDeleting(object sender, FormViewDeleteEventArgs e)
    {
        Int32 eno;
        eno = Convert.ToInt32(((Label)(FormView1.FindControl("Label1"))).Text);
        Object[] ar = new Object[1];
        ar[0] = eno;
        SqlHelper.ExecuteNonQuery(psg, "delemp", ar);
        Form_Bind();
    }