.aspx
.CS
You can Download full Code from Here.
<%@ Page
Language="C#"
AutoEventWireup="true"
CodeBehind="WebForm1.aspx.cs"
Inherits="GridviewAllOperations.WebForm1"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:GridView ID="grdinsurers" AutoGenerateColumns="false" runat="server" Width="60%"
CaptionAlign="Top" Caption="Gridview with All Operations" ShowFooter="true"
OnRowDeleting="grdinsurers_RowDel"
OnRowCancelingEdit="grdinsurers_RowCancelingEdit" OnRowEditing="grdinsurers_RowEditing"
OnRowUpdating="grdinsurers_RowUpdating" OnRowCommand="grdinsurers_RowCommand"
AllowPaging="true" AllowSorting="true" PageSize="10" OnSorting="grdinsurers_Sorting"
OnPageIndexChanging="grdinsurers_PageIndexChanging" OnRowDataBound="grdinsurers_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="S.No">
<ItemTemplate>
<asp:Label ID="lblsno" runat="server" Text="<%#Container.DataItemIndex+1 %>"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="ID No." DataField="ID" ReadOnly="true" />
<asp:TemplateField HeaderText="Name" SortExpression="NAME">
<ItemTemplate>
<asp:Label ID="lblname" runat="server" Text='<%#Eval("NAME") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtupname" runat="server" Text='<%#Eval("NAME") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="reqtxtupname" runat="server" ErrorMessage="*" ForeColor="Red"
ControlToValidate="txtupname"
ValidationGroup="vgupdate"></asp:RequiredFieldValidator>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtname" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqtxtname" runat="server" ErrorMessage="*" ForeColor="Red"
ControlToValidate="txtname"
ValidationGroup="vginsert"></asp:RequiredFieldValidator>
</FooterTemplate>
<HeaderStyle HorizontalAlign="Left" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Salary" SortExpression="SAL">
<ItemTemplate>
<asp:Label ID="lblsal" runat="server" Text='<%#Eval("SAL") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtupSAL" runat="server" Text='<%#Eval("SAL") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="reqtxtupSAL" runat="server" ErrorMessage="*" ForeColor="Red"
ControlToValidate="txtupSAL"
ValidationGroup="vgupdate"></asp:RequiredFieldValidator>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtsal" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator
ID="reqtxtsal"
runat="server"
ErrorMessage="*"
ForeColor="Red"
ControlToValidate="txtsal"
ValidationGroup="vginsert"></asp:RequiredFieldValidator>
<br />
<asp:Label ID="lblsaltotal" runat="server"></asp:Label>
</FooterTemplate>
<HeaderStyle HorizontalAlign="Left" />
</asp:TemplateField>
<asp:TemplateField HeaderText="City">
<ItemTemplate>
<asp:Label ID="lblcity" runat="server" Text='<%#Eval("CITY") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtupCITY" runat="server" Text='<%#Eval("CITY") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="reqtxtupCITY" runat="server" ErrorMessage="*" ForeColor="Red"
ControlToValidate="txtupCITY"
ValidationGroup="vgupdate"></asp:RequiredFieldValidator>
</EditItemTemplate>
<HeaderStyle HorizontalAlign="Left" />
<FooterTemplate>
<asp:TextBox ID="txtcity" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqtxtcity" runat="server" ErrorMessage="*" ForeColor="Red"
ControlToValidate="txtcity"
ValidationGroup="vginsert"></asp:RequiredFieldValidator>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Gender">
<ItemTemplate>
<asp:Label ID="lblgender" runat="server" Text='<%#Eval("GENDERTEXT") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlgenderup" runat="server" OnSelectedIndexChanged="ddlgenderup_SelectedIndexChanged"
AutoPostBack="true">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="reqddlgenderup" runat="server" ErrorMessage="*" ForeColor="Red"
InitialValue="- Select
-" ControlToValidate="ddlgenderup" ValidationGroup="vgupdate"></asp:RequiredFieldValidator>
</EditItemTemplate>
<HeaderStyle HorizontalAlign="Left" />
<FooterTemplate>
<asp:DropDownList ID="ddlgender" runat="server" OnSelectedIndexChanged="ddlgender_SelectedIndexChanged"
AutoPostBack="true">
</asp:DropDownList>
<asp:RequiredFieldValidator
ID="reqddlgender"
runat="server"
ErrorMessage="*"
ForeColor="Red"
InitialValue="- Select
-" ControlToValidate="ddlgender" ValidationGroup="vginsert"></asp:RequiredFieldValidator>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Section">
<ItemTemplate>
<asp:Label ID="lblsection" runat="server" Text='<%#Eval("SECTIONTEXT") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:UpdatePanel ID="uppanelsectionUP" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:DropDownList ID="ddlsectionup"
runat="server">
</asp:DropDownList>
<asp:RequiredFieldValidator
ID="reqddlsectionup"
runat="server"
ErrorMessage="*"
ForeColor="Red"
InitialValue="-
Select -" ControlToValidate="ddlsectionup" ValidationGroup="vgupdate"></asp:RequiredFieldValidator>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger
ControlID="ddlgenderup"
EventName="SelectedIndexChanged"
/>
</Triggers>
</asp:UpdatePanel>
</EditItemTemplate>
<HeaderStyle HorizontalAlign="Left" />
<FooterTemplate>
<asp:UpdatePanel ID="uppanelsection" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:DropDownList ID="ddlsection"
runat="server">
</asp:DropDownList>
<asp:RequiredFieldValidator
ID="reqddlsection"
runat="server"
ErrorMessage="*"
ForeColor="Red"
InitialValue="-
Select -" ControlToValidate="ddlsection" ValidationGroup="vginsert"></asp:RequiredFieldValidator>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger
ControlID="ddlgender"
EventName="SelectedIndexChanged"
/>
</Triggers>
</asp:UpdatePanel>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
</ItemTemplate>
<FooterTemplate>
<asp:Button ID="btnsub" runat="server" Text="ADD" CommandName="ADD" ValidationGroup="vginsert"
CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Update">
<EditItemTemplate>
<asp:LinkButton ID="lnkupdate" runat="server" CommandName="Update" Text="Update"
ValidationGroup="vgupdate"></asp:LinkButton>
<asp:LinkButton ID="lnkcancel" runat="server" CommandName="Cancel" Text="Cancel"
ValidationGroup="vgnone"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="lnkedit" runat="server" CommandName="Edit" Text="Edit" ValidationGroup="vgnone"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField ButtonType="Link" Text="Delete" CommandName="Delete" HeaderText="Delete"
ValidationGroup="vgnone" />
</Columns>
<RowStyle HorizontalAlign="Left" />
</asp:GridView>
</div>
</form>
</body>
</html>
using System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Reflection;
namespace
GridviewAllOperations
{
//Use
Serializable to store this in ViewState
[Serializable]
public class Mylist
{
public
Mylist()
{
}
string
_id, _name, _sal, _city;
public string ID
{
get
{ return _id; }
set
{ _id = value; }
}
public string NAME
{
get
{ return _name; }
set
{ _name = value; }
}
public string SAL
{
get
{ return _sal; }
set
{ _sal = value; }
}
public string CITY
{
get
{ return _city; }
set
{ _city = value; }
}
string
_gendervalue, _gendertext, _sectionvalue, _sectiontext;
public string GENDERVALUE
{
get
{ return _gendervalue; }
set
{ _gendervalue = value; }
}
public string GENDERTEXT
{
get
{ return _gendertext; }
set
{ _gendertext = value; }
}
public string SECTIONVALUE
{
get
{ return _sectionvalue; }
set
{ _sectionvalue = value; }
}
public string SECTIONTEXT
{
get
{ return _sectiontext; }
set
{ _sectiontext = value; }
}
}
public class DDLClass
{
string
_gendervalue, _gendertext, _sectionvalue, _sectiontext;
public string GENDERVALUE
{
get
{ return _gendervalue; }
set
{ _gendervalue = value; }
}
public string GENDERTEXT
{
get
{ return _gendertext; }
set
{ _gendertext = value; }
}
public string SECTIONVALUE
{
get
{ return _sectionvalue; }
set
{ _sectionvalue = value; }
}
public string SECTIONTEXT
{
get
{ return _sectiontext; }
set
{ _sectiontext = value; }
}
}
/// <summary>
/// This class is used to compare any
/// type(property) of a class for sorting.
/// This class automatically fetches the
/// type of the property and compares.
/// </summary>
public sealed class GenericComparer<T> : IComparer<T>
{
public enum SortOrder {
Ascending, Descending };
#region Constructors
public
GenericComparer(string sortColumn, SortOrder sortingOrder)
{
this._sortColumn
= sortColumn;
this._sortingOrder
= sortingOrder;
}
/// <summary>
/// Constructor when passing in a sort expression containing
both the Sort Column and the Sort Order
/// e.g., "BPCode ASC".
/// </summary>
/// <param
name="sortExpression"></param>
/// <remarks>
/// This constructor is useful when using this with the
ASP.NET ObjectDataSource,
/// which passes the SortParameterName in this format
/// </remarks>
public
GenericComparer(string sortExpression)
{
string[]
sortExprArray = sortExpression.Split(" ".ToCharArray());
string
sortColumn = sortExprArray[0];
SortOrder
sortingOrder;
sortingOrder = SortOrder.Ascending;
if
(sortExprArray.Length > 1)
{
if
(sortExprArray[1].ToUpper() == "DESC")
{
sortingOrder = SortOrder.Descending;
}
}
this._sortColumn
= sortColumn;
this._sortingOrder
= sortingOrder;
}
#endregion
#region public properties
/// <summary>
/// Column Name(public property of the class) to be sorted.
/// </summary>
private
string _sortColumn;
public string SortColumn
{
get
{ return _sortColumn; }
}
/// <summary>
/// Sorting order (ASC OR DESC)
/// </summary>
private
SortOrder _sortingOrder;
public SortOrder SortingOrder
{
get
{ return _sortingOrder; }
}
#endregion
/// <summary>
/// Compare two objects of the same class,
/// based on the value of a given property
/// </summary>
/// <param
name="x">First Object</param>
/// <param
name="y">Second Object</param>
/// <returns>int</returns>
public int Compare(T x, T y)
{
// User
reflection to get the property
PropertyInfo
propertyInfo = typeof(T).GetProperty(_sortColumn);
// Cast the
property to IComparable, so we can use the built-in compare.
IComparable
obj1 = (IComparable)propertyInfo.GetValue(x,
null);
IComparable
obj2 = (IComparable)propertyInfo.GetValue(y,
null);
// Order
depends on Asc vs Desc.
if
(_sortingOrder == SortOrder.Ascending)
{
return
(obj1.CompareTo(obj2));
}
else
{
return
(obj2.CompareTo(obj1));
}
}
}
public partial class WebForm1 : System.Web.UI.Page
{
List<DDLClass> ddllist = new
List<DDLClass>()
{
new
DDLClass{SECTIONVALUE="1",SECTIONTEXT="Section
ONE",GENDERVALUE="1",GENDERTEXT="Male"},
new
DDLClass{SECTIONVALUE="2",SECTIONTEXT="Section
TWO",GENDERVALUE="1",GENDERTEXT="Male"},
new
DDLClass{SECTIONVALUE="3",SECTIONTEXT="Section
THREE",GENDERVALUE="1",GENDERTEXT="Male"},
new
DDLClass{SECTIONVALUE="4",SECTIONTEXT="Section
FOUR",GENDERVALUE="2",GENDERTEXT="Female"},
new
DDLClass{SECTIONVALUE="5",SECTIONTEXT="Section
FIVE",GENDERVALUE="2",GENDERTEXT="Female"}
};
decimal
Count = 0M; //This is for total to show in footer
protected
void Page_Load(object
sender, EventArgs e)
{
if
(!IsPostBack)
{
FillGrid();
}
}
protected
void grdinsurers_RowCommand(object sender, GridViewCommandEventArgs
e)
{
//If you
use Row Command Like Cancel,Delete,Edit,Page,Select,Sort,Update the following
events will be raised automatically so just its needed implementaion.
/*
* CommandName Description
* =========== ===========
* Cancel Cancels an edit operation and
returns the GridView control to read-only mode.Raises the RowCancelingEdit
event.
*
* Delete Deletes the current
record.Raises the RowDeleting and RowDeleted events.
*
* Edit Puts the current record in
edit mode.Raises the RowEditing event.
*
* Page Performs a paging
operation.Sets the CommandArgument property of the button to "First ",
"Last ", "Next ", "Prev", or a page number to
specify the type of paging operation to perform.Raises the PageIndexChanging
and PageIndexChanged events.
*
* Select Selects the current
record.Raises the SelectedIndexChanging
and SelectedIndexChanged events.
*
* Sort Sorts the GridView
control.Raises the Sorting and Sorted events.
*
* Update Updates the current record in
the data source.Raises the RowUpdat ing and RowUpdated events.
*/
if
(e.CommandName == "ADD")
{
GridViewRow
row = grdinsurers.FooterRow;
TextBox
tempname = (TextBox)row.FindControl("txtname");
TextBox
tempsal = (TextBox)row.FindControl("txtsal");
TextBox
tempcity = (TextBox)row.FindControl("txtcity");
DropDownList
tempddlgender = (DropDownList)row.FindControl("ddlgender");
DropDownList
tempddlsection = (DropDownList)row.FindControl("ddlsection");
if
(ViewState["list"] == null)
{
Mylist
obj = new Mylist();
List<Mylist> list = new
List<Mylist>
{
new Mylist{ID="IND000",NAME=tempname.Text,SAL=tempsal.Text,CITY=tempcity.Text,GENDERTEXT=tempddlgender.SelectedItem.Text,GENDERVALUE=tempddlgender.SelectedValue,SECTIONTEXT=tempddlsection.SelectedItem.Text,SECTIONVALUE=tempddlsection.SelectedValue}
};
ViewState["list"] = list;
FillGrid();
}
else
{
List<Mylist> list = (List<Mylist>)ViewState["list"];
string
id = "IND00" + list.Count;
list.Add(new Mylist { ID =
id, NAME = tempname.Text, SAL = tempsal.Text, CITY = tempcity.Text, GENDERTEXT
= tempddlgender.SelectedItem.Text, GENDERVALUE = tempddlgender.SelectedValue,
SECTIONTEXT = tempddlsection.SelectedItem.Text, SECTIONVALUE =
tempddlsection.SelectedValue });
ViewState["list"] = list;
FillGrid();
}
}
}
private
void FillGrid()
{
if
(ViewState["list"] != null)
{
List<Mylist> list = (List<Mylist>)ViewState["list"];
if
(list.Count > 0)
{
grdinsurers.DataSource =
list;
grdinsurers.DataBind();
((DataControlField)grdinsurers.Columns.Cast<DataControlField>().Where(fld =>
fld.HeaderText == "Update").SingleOrDefault()).Visible
= true;
((DataControlField)grdinsurers.Columns.Cast<DataControlField>().Where(fld =>
fld.HeaderText == "Delete").SingleOrDefault()).Visible
= true;
}
else
{
FillEmptyGrid();
}
}
else
{
FillEmptyGrid();
}
//Fill dropdown
list
var
distinctgender = (ddllist.GroupBy(x => x.GENDERVALUE).Select(y =>
y.First())).ToList();//Use this LINQ TO SQL Query for
getting UNIQUE rows from list.
GridViewRow
foot = grdinsurers.FooterRow;
DropDownList
tempddlgender = (DropDownList)foot.FindControl("ddlgender");
tempddlgender.DataSource =
distinctgender;
tempddlgender.DataTextField = "GENDERTEXT";
tempddlgender.DataValueField = "GENDERVALUE";
tempddlgender.DataBind();
tempddlgender.Items.Insert(0, "- Select -");
DropDownList
tempddlsection = (DropDownList)foot.FindControl("ddlsection");
var
selectionlist = (from sel in ddllist where
sel.GENDERVALUE == tempddlgender.SelectedValue select
sel).ToList();
if
(selectionlist.Count > 0)
{
tempddlsection.DataSource =
selectionlist;
}
else
{
List<DDLClass> emptylist = new
List<DDLClass>();
tempddlsection.DataSource =
emptylist;
}
tempddlsection.DataTextField = "SECTIONTEXT";
tempddlsection.DataValueField = "SECTIONVALUE";
tempddlsection.DataBind();
tempddlsection.Items.Insert(0, "- Select -");
}
private
void FillEmptyGrid()
{
Mylist
obj = new Mylist();
List<Mylist> list = new
List<Mylist>();
list.Add(obj);//binds empty list to grid
//Hide
grid columns based on column HeaderText
((DataControlField)grdinsurers.Columns.Cast<DataControlField>().Where(fld =>
fld.HeaderText == "Update").SingleOrDefault()).Visible
= false;
((DataControlField)grdinsurers.Columns.Cast<DataControlField>().Where(fld =>
fld.HeaderText == "Delete").SingleOrDefault()).Visible
= false;
grdinsurers.DataSource = list;
grdinsurers.DataBind();
}
protected
void grdinsurers_RowDel(object sender, GridViewDeleteEventArgs
e)
{
GridViewRow
row = grdinsurers.Rows[e.RowIndex];
// Label
tempname = (Label)row.FindControl("txtname"); //Find control is to
find a control inside the gridview TemplateField
string
id = row.Cells[1].Text; //Find the value of specific column row based on cell
index.
List<Mylist> list = (List<Mylist>)ViewState["list"];
list.RemoveAll(p => p.ID == id);
ViewState["list"]
= list;
grdinsurers.EditIndex = -1;
FillGrid();
}
protected
void grdinsurers_RowUpdating(object sender, GridViewUpdateEventArgs
e)
{
List<Mylist> list = (List<Mylist>)ViewState["list"];
//Updating
list Values based list index
list[e.RowIndex].NAME = ((TextBox)(grdinsurers.Rows[e.RowIndex].FindControl("txtupname"))).Text;
list[e.RowIndex].SAL = ((TextBox)(grdinsurers.Rows[e.RowIndex].FindControl("txtupSAL"))).Text;
list[e.RowIndex].CITY = ((TextBox)(grdinsurers.Rows[e.RowIndex].FindControl("txtupCITY"))).Text;
list[e.RowIndex].GENDERTEXT = ((DropDownList)(grdinsurers.Rows[e.RowIndex].FindControl("ddlgenderup"))).SelectedItem.Text;
list[e.RowIndex].GENDERVALUE = ((DropDownList)(grdinsurers.Rows[e.RowIndex].FindControl("ddlgenderup"))).SelectedValue;
list[e.RowIndex].SECTIONTEXT = ((DropDownList)(grdinsurers.Rows[e.RowIndex].FindControl("ddlsectionup"))).SelectedItem.Text;
list[e.RowIndex].SECTIONVALUE = ((DropDownList)(grdinsurers.Rows[e.RowIndex].FindControl("ddlsectionup"))).SelectedValue;
grdinsurers.EditIndex = -1;
FillGrid();
}
protected
void grdinsurers_RowEditing(object sender, GridViewEditEventArgs
e)
{
grdinsurers.EditIndex =
e.NewEditIndex;
FillGrid();
var
distinctgender = (ddllist.GroupBy(x => x.GENDERVALUE).Select(y =>
y.First())).ToList();//Use this LINQ TO SQL Query for
getting UNIQUE rows from list.
GridViewRow
rows = grdinsurers.Rows[grdinsurers.EditIndex];
int
index = rows.DataItemIndex;
DropDownList
tempddlgender = (DropDownList)grdinsurers.Rows[index].FindControl("ddlgenderup");
tempddlgender.DataSource =
distinctgender;
tempddlgender.DataTextField = "GENDERTEXT";
tempddlgender.DataValueField = "GENDERVALUE";
tempddlgender.DataBind();
tempddlgender.Items.Insert(0, "- Select -");
List<Mylist> list = (List<Mylist>)ViewState["list"];
tempddlgender.SelectedValue =
list[index].GENDERVALUE;
DropDownList
tempddlsection = (DropDownList)grdinsurers.Rows[index].FindControl("ddlsectionup");
var
selectionlist = (from sel in ddllist where
sel.GENDERVALUE == tempddlgender.SelectedValue select
sel).ToList();
if
(selectionlist.Count > 0)
{
tempddlsection.DataSource =
selectionlist;
}
else
if (tempddlgender.SelectedValue == "2")
{
List<DDLClass> emptylist = new
List<DDLClass>();
tempddlsection.DataSource =
emptylist;
}
tempddlsection.DataTextField = "SECTIONTEXT";
tempddlsection.DataValueField = "SECTIONVALUE";
tempddlsection.DataBind();
tempddlsection.Items.Insert(0, "- Select -");
tempddlsection.SelectedValue =
list[index].SECTIONVALUE;
}
protected
void grdinsurers_RowCancelingEdit(object sender, GridViewCancelEditEventArgs
e)
{
grdinsurers.EditIndex = -1;
FillGrid();
}
protected
void grdinsurers_Sorting(object sender, GridViewSortEventArgs
e)
{
List<Mylist> list = (List<Mylist>)ViewState["list"];
string
sortdirection = e.SortExpression + " "
+ GetSortDirection(e.SortExpression);
////var
result0 = (from element in list
//// orderby element.NAME ascending
//// select element).ToList();
//if
(sortdirection == "ASC")
//{
// var result0 = list.OrderBy(s =>
s.NAME).ToList();
// ViewState["list"] = result0;
//}
//else
//{
// var result0 = list.OrderByDescending(s
=> s.NAME).ToList();
// ViewState["list"] = result0;
//}
////list.Sort((a,
b) => a.NAME.CompareTo(b.NAME));
////ViewState["list"]
= list;
GenericComparer<Mylist> cmp = new
GenericComparer<Mylist>(sortdirection);
list.Sort(cmp);
ViewState["list"]
= list;
FillGrid();
}
private
string GetSortDirection(string column)
{
// By
default, set the sort direction to ascending.
string
sortDirection = "ASC";
//
Retrieve the last column that was sorted.
string
sortExpression = ViewState["SortExpression"]
as string;
if
(sortExpression != null)
{
//
Check if the same column is being sorted.
//
Otherwise, the default value can be returned.
if
(sortExpression == column)
{
string
lastDirection = ViewState["SortDirection"]
as string;
if
((lastDirection != null) &&
(lastDirection == "ASC"))
{
sortDirection = "DESC";
}
}
}
// Save
new values in ViewState.
ViewState["SortDirection"]
= sortDirection;
ViewState["SortExpression"]
= column;
return
sortDirection;
}
protected
void grdinsurers_PageIndexChanging(object sender, GridViewPageEventArgs
e)
{
string
Message = string.Empty;
// Cancel
the paging operation if the user attempts to navigate
// to
another page while the GridView control is in edit mode.
if
(grdinsurers.EditIndex != -1)
{
//
Use the Cancel property to cancel the paging operation.
e.Cancel = true;
//
Display an error message.
int
newPageNumber = e.NewPageIndex + 1;
Message = "Please update the record before moving to page
" +
newPageNumber.ToString() + ".";
}
else
{
//
Clear the error message.
Message = string.Empty;
grdinsurers.PageIndex =
e.NewPageIndex;
FillGrid();
}
}
protected
void ddlgenderup_SelectedIndexChanged(object sender, EventArgs
e)
{
GridViewRow
rows = (GridViewRow)((Control)sender).Parent.Parent;
int
index = rows.DataItemIndex;
DropDownList
tempddlgender = (DropDownList)grdinsurers.Rows[index].FindControl("ddlgenderup");
DropDownList
tempddlsection = (DropDownList)grdinsurers.Rows[index].FindControl("ddlsectionup");
var
selectionlist = (from sel in ddllist where
sel.GENDERVALUE == tempddlgender.SelectedValue select
sel).ToList();
if
(selectionlist.Count > 0)
{
tempddlsection.DataSource =
selectionlist;
}
else
{
List<DDLClass> emptylist = new
List<DDLClass>();
tempddlsection.DataSource =
emptylist;
}
tempddlsection.DataTextField = "SECTIONTEXT";
tempddlsection.DataValueField = "SECTIONVALUE";
tempddlsection.DataBind();
tempddlsection.Items.Insert(0, "- Select -");
}
protected
void ddlgender_SelectedIndexChanged(object sender, EventArgs
e)
{
GridViewRow
foot = grdinsurers.FooterRow;
DropDownList
tempddlgender = (DropDownList)foot.FindControl("ddlgender");
DropDownList
tempddlsection = (DropDownList)foot.FindControl("ddlsection");
var
selectionlist = (from sel in ddllist where
sel.GENDERVALUE == tempddlgender.SelectedValue select
sel).ToList();
if
(selectionlist.Count > 0)
{
tempddlsection.DataSource =
selectionlist;
}
else
{
List<DDLClass> emptylist = new
List<DDLClass>();
tempddlsection.DataSource =
emptylist;
}
tempddlsection.DataTextField = "SECTIONTEXT";
tempddlsection.DataValueField = "SECTIONVALUE";
tempddlsection.DataBind();
tempddlsection.Items.Insert(0, "- Select -");
}
protected
void grdinsurers_RowDataBound(object sender, GridViewRowEventArgs
e)
{
//Show
total in footer
if
(e.Row.RowType == DataControlRowType.DataRow)
{
try
{
Label
templblsal = (Label)e.Row.FindControl("lblsal");
Count += Convert.ToDecimal(templblsal.Text);
}
catch
{
//do
nothing
}
}
if
(e.Row.RowType == DataControlRowType.Footer)
{
Label
templblsal = (Label)e.Row.FindControl("lblsaltotal");
templblsal.Text = Count.ToString("F");
}
}
}
}
You can Download full Code from Here.