代码
using
System;
using System.Web.UI.WebControls;
using Utilities;
using System.Collections.ObjectModel;
public partial class Code_Sample_Listing_Page : System.Web.UI.Page
{
#region "Click/Command Handlers"
protected void GridViewEmployees_RowCommand( object sender, System.Web.UI.WebControls.CommandEventArgs e)
{
if (e.CommandName == " cmdView " )
WebManager.RedirectToDetailsPage( " details-page.aspx " , e.CommandArgument.ToString(), FormViewMode.ReadOnly);
else if (e.CommandName == " cmdEdit " )
WebManager.RedirectToDetailsPage( " details-page.aspx " , e.CommandArgument.ToString(), FormViewMode.Edit);
else if (e.CommandName == " cmdDelete " )
{
// implicit delete method call: the code below will invoke the delete method is the corresponding object data source implicitly
gridViewEmployees.DeleteRow(Convert.ToInt32(e.CommandArgument,System.Globalization.CultureInfo.CurrentCulture.NumberFormat)); // command argument contains row index
}
}
protected void ButtonDeleteSelected_Click( object sender, System.EventArgs e)
{
try
{
// Create a List to hold the EmployeeID values to delete
Collection < Int32 > employeeIDsToDelete = new Collection < Int32 > ();
// Iterate through the Employees.Rows property
foreach (GridViewRow row in gridViewEmployees.Rows)
{
// Access the CheckBox
CheckBox cb = (CheckBox)(row.FindControl( " chkEmployeeSelector " ));
if (cb != null && cb.Checked)
{
// Save the EmployeeID value for deletion
// First, get the EmployeeID for the selected row
Int32 employeeId = (Int32)gridViewEmployees.DataKeys[row.RowIndex].Value;
// Add it to the List...
employeeIDsToDelete.Add(employeeId);
// Add a confirmation message
labelMessage.Text += String.Format(System.Globalization.CultureInfo.CurrentCulture, " Delete successful. EmployeeId {0} has been deleted<br /> " , employeeId);
labelMessage.ForeColor = System.Drawing.Color.Green;
}
}
// perform the actual delete
if (Entity.Employee.DeleteEmployees(employeeIDsToDelete) == false )
labelMessage.Text = " There is a problem deleting all items. One or more items have not been deleted due to problem. " ;
}
catch (Exception ex)
{
labelMessage.Text = " Problem while deleting. " + ex.Message;
labelMessage.ForeColor = System.Drawing.Color.Red;
}
// binding the grid
gridViewEmployees.PageIndex = 0 ;
gridViewEmployees.DataBind();
}
protected void ButtonAdd_Click( object sender, System.EventArgs e)
{
WebManager.RedirectToDetailsPage( " details-page.aspx " , " 0 " , FormViewMode.Insert);
}
#endregion
protected void GridViewEmployees_RowDataBound( object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
if ((e.Row.RowType == DataControlRowType.Header))
{
// adding an attribut for onclick event on the check box in the hearder and passing the ClientID of the Select All checkbox
((CheckBox)e.Row.FindControl( " chkSelectAll " )).Attributes.Add( " onclick " , " SelectAll(' " + gridViewEmployees.ClientID + " ',' " + ((CheckBox)e.Row.FindControl( " chkSelectAll " )).ClientID + " ') " );
}
if (e.Row.RowType == DataControlRowType.DataRow)
{
Int32 employeeId = (Int32)gridViewEmployees.DataKeys[e.Row.RowIndex].Value;
ImageButton imbtnView;
imbtnView = (ImageButton)e.Row.FindControl( " lnbView " );
// assigning alternate text for w3c validation
imbtnView.AlternateText = " view " ;
imbtnView.CommandArgument = employeeId.ToString(System.Globalization.CultureInfo.CurrentCulture.NumberFormat);
ImageButton imbtnEdit;
imbtnEdit = (ImageButton)e.Row.FindControl( " lnbEdit " );
// assigning alternate text for w3c validation
imbtnEdit.AlternateText = " edit " ;
imbtnEdit.CommandArgument = employeeId.ToString(System.Globalization.CultureInfo.CurrentCulture.NumberFormat);
ImageButton imbtnDelete = (ImageButton)e.Row.FindControl( " lnbDelete " );
// assigning alternate text for w3c validation
imbtnDelete.AlternateText = " delete " ;
imbtnDelete.CommandArgument = e.Row.RowIndex.ToString(System.Globalization.CultureInfo.CurrentCulture.NumberFormat);
imbtnDelete.Attributes.Add( " onclick " , " javascript:return confirm('Are you sure you want to delete?'); " );
}
}
protected void odsOrderDetails_Deleted( object sender, ObjectDataSourceStatusEventArgs e)
{
// getting the result
bool result = Convert.ToBoolean(e.ReturnValue, System.Globalization.CultureInfo.CurrentCulture.NumberFormat);
if (result)
{
labelMessage.Text = " Delete successful. " ;
labelMessage.ForeColor = System.Drawing.Color.Green;
}
else
{
e.ExceptionHandled = true ;
labelMessage.Text = " Delete Not successful. " ;
if (e.Exception != null ) labelMessage.Text += e.Exception.Message;
labelMessage.ForeColor = System.Drawing.Color.Red;
}
}
protected void buttonFilter_Click( object sender, EventArgs e)
{
gridViewEmployees.DataBind();
}
}
using System.Web.UI.WebControls;
using Utilities;
using System.Collections.ObjectModel;
public partial class Code_Sample_Listing_Page : System.Web.UI.Page
{
#region "Click/Command Handlers"
protected void GridViewEmployees_RowCommand( object sender, System.Web.UI.WebControls.CommandEventArgs e)
{
if (e.CommandName == " cmdView " )
WebManager.RedirectToDetailsPage( " details-page.aspx " , e.CommandArgument.ToString(), FormViewMode.ReadOnly);
else if (e.CommandName == " cmdEdit " )
WebManager.RedirectToDetailsPage( " details-page.aspx " , e.CommandArgument.ToString(), FormViewMode.Edit);
else if (e.CommandName == " cmdDelete " )
{
// implicit delete method call: the code below will invoke the delete method is the corresponding object data source implicitly
gridViewEmployees.DeleteRow(Convert.ToInt32(e.CommandArgument,System.Globalization.CultureInfo.CurrentCulture.NumberFormat)); // command argument contains row index
}
}
protected void ButtonDeleteSelected_Click( object sender, System.EventArgs e)
{
try
{
// Create a List to hold the EmployeeID values to delete
Collection < Int32 > employeeIDsToDelete = new Collection < Int32 > ();
// Iterate through the Employees.Rows property
foreach (GridViewRow row in gridViewEmployees.Rows)
{
// Access the CheckBox
CheckBox cb = (CheckBox)(row.FindControl( " chkEmployeeSelector " ));
if (cb != null && cb.Checked)
{
// Save the EmployeeID value for deletion
// First, get the EmployeeID for the selected row
Int32 employeeId = (Int32)gridViewEmployees.DataKeys[row.RowIndex].Value;
// Add it to the List...
employeeIDsToDelete.Add(employeeId);
// Add a confirmation message
labelMessage.Text += String.Format(System.Globalization.CultureInfo.CurrentCulture, " Delete successful. EmployeeId {0} has been deleted<br /> " , employeeId);
labelMessage.ForeColor = System.Drawing.Color.Green;
}
}
// perform the actual delete
if (Entity.Employee.DeleteEmployees(employeeIDsToDelete) == false )
labelMessage.Text = " There is a problem deleting all items. One or more items have not been deleted due to problem. " ;
}
catch (Exception ex)
{
labelMessage.Text = " Problem while deleting. " + ex.Message;
labelMessage.ForeColor = System.Drawing.Color.Red;
}
// binding the grid
gridViewEmployees.PageIndex = 0 ;
gridViewEmployees.DataBind();
}
protected void ButtonAdd_Click( object sender, System.EventArgs e)
{
WebManager.RedirectToDetailsPage( " details-page.aspx " , " 0 " , FormViewMode.Insert);
}
#endregion
protected void GridViewEmployees_RowDataBound( object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
if ((e.Row.RowType == DataControlRowType.Header))
{
// adding an attribut for onclick event on the check box in the hearder and passing the ClientID of the Select All checkbox
((CheckBox)e.Row.FindControl( " chkSelectAll " )).Attributes.Add( " onclick " , " SelectAll(' " + gridViewEmployees.ClientID + " ',' " + ((CheckBox)e.Row.FindControl( " chkSelectAll " )).ClientID + " ') " );
}
if (e.Row.RowType == DataControlRowType.DataRow)
{
Int32 employeeId = (Int32)gridViewEmployees.DataKeys[e.Row.RowIndex].Value;
ImageButton imbtnView;
imbtnView = (ImageButton)e.Row.FindControl( " lnbView " );
// assigning alternate text for w3c validation
imbtnView.AlternateText = " view " ;
imbtnView.CommandArgument = employeeId.ToString(System.Globalization.CultureInfo.CurrentCulture.NumberFormat);
ImageButton imbtnEdit;
imbtnEdit = (ImageButton)e.Row.FindControl( " lnbEdit " );
// assigning alternate text for w3c validation
imbtnEdit.AlternateText = " edit " ;
imbtnEdit.CommandArgument = employeeId.ToString(System.Globalization.CultureInfo.CurrentCulture.NumberFormat);
ImageButton imbtnDelete = (ImageButton)e.Row.FindControl( " lnbDelete " );
// assigning alternate text for w3c validation
imbtnDelete.AlternateText = " delete " ;
imbtnDelete.CommandArgument = e.Row.RowIndex.ToString(System.Globalization.CultureInfo.CurrentCulture.NumberFormat);
imbtnDelete.Attributes.Add( " onclick " , " javascript:return confirm('Are you sure you want to delete?'); " );
}
}
protected void odsOrderDetails_Deleted( object sender, ObjectDataSourceStatusEventArgs e)
{
// getting the result
bool result = Convert.ToBoolean(e.ReturnValue, System.Globalization.CultureInfo.CurrentCulture.NumberFormat);
if (result)
{
labelMessage.Text = " Delete successful. " ;
labelMessage.ForeColor = System.Drawing.Color.Green;
}
else
{
e.ExceptionHandled = true ;
labelMessage.Text = " Delete Not successful. " ;
if (e.Exception != null ) labelMessage.Text += e.Exception.Message;
labelMessage.ForeColor = System.Drawing.Color.Red;
}
}
protected void buttonFilter_Click( object sender, EventArgs e)
{
gridViewEmployees.DataBind();
}
}
代码
<%
@ Page Language
=
"
C#
"
MasterPageFile
=
"
~/master/default.master
"
AutoEventWireup
=
"
true
"
CodeFile = " listing-page.aspx.cs " Inherits = " Code_Sample_Listing_Page " Title = " Employee Listing Page " %>
<% @ Register Assembly = " App_Code " Namespace = " Utilities " TagPrefix = " CustomControl " %>
< asp:Content ID ="Content2" ContentPlaceHolderID ="ContentPlaceholder1" runat ="Server" >
< table id ="tblOuter" class ="contentcontainerTBL" summary ="table1 summary info" width ="100%" >
< caption >
</ caption >
< thead >
< tr >
< th class ="invisible" title ="Outer table Header" >
</ th >
</ tr >
</ thead >
< tr >
< td >
< br />
< p class ="tblHeaderTitleSize" >
Employees
</ p >
< p >
In this page you will be able to view the list of all employess. Click on the appropriate
buttons to view, insert or update an employee.
</ p >
</ td >
</ tr >
< tr >
< td >
Employee:
< asp:DropDownList ID ="dropDownListEmployee" runat ="server" AppendDataBoundItems ="true"
DataSourceID ="odsEmployeeList" DataTextField ="FirstName" DataValueField ="EmployeeId"
EnableViewState ="false" >
< asp:ListItem Text ="All" Value ="" ></ asp:ListItem >
</ asp:DropDownList >
< asp:ObjectDataSource ID ="odsEmployeeList" runat ="server" TypeName ="Entity.Employee"
EnableViewState ="true" SelectMethod ="SelectAllEmployees" />
< asp:Button runat ="server" Text ="Filter" ID ="buttonFilter" CssClass ="button-search"
AccessKey ="f" Width ="75px" OnClick ="buttonFilter_Click" />
</ td >
</ tr >
< tr class ="spacerrowTBL" >
< td >
< asp:Label EnableViewState ="false" runat ="server" ID ="labelMessage" ></ asp:Label >
</ td >
</ tr >
< tr >
< td >
< table id ="tblInner" class ="uirowcontainerTBL" summary ="table2 summary" >
< caption >
</ caption >
< thead >
< tr >
< th class ="invisible" title ="inner table Header" >
</ th >
</ tr >
</ thead >
< tr >
< td >
< asp:GridView ID ="gridViewEmployees" runat ="server" SkinID ="GridView" DataSourceID ="odsOrderDetails"
DataKeyNames ="EmployeeId" AllowPaging ="True" BorderWidth ="1px" BorderStyle ="Solid"
OnRowCommand ="GridViewEmployees_RowCommand" OnRowDataBound ="GridViewEmployees_RowDataBound"
UseAccessibleHeader ="False" >
< Columns >
< asp:BoundField DataField ="FirstName" HeaderText ="First Name" ReadOnly ="True" SortExpression ="Title" />
< asp:BoundField DataField ="LastName" HeaderText ="Last Name" ReadOnly ="True" SortExpression ="Description" />
< asp:BoundField DataField ="Country" HeaderText ="Country" ReadOnly ="True" SortExpression ="Url" />
< asp:TemplateField >
< ItemStyle Width ="50px" />
< ItemTemplate >
< asp:ImageButton ID ="lnbView" AlternateText ="view" ImageUrl ="~/image/view_icon.gif"
runat ="server" CommandName ="cmdView" />
</ ItemTemplate >
< HeaderTemplate >
View
</ HeaderTemplate >
</ asp:TemplateField >
< asp:TemplateField >
< ItemStyle Width ="50px" />
< ItemTemplate >
< asp:ImageButton ID ="lnbEdit" AlternateText ="edit" ImageUrl ="~/image/edit_icon.gif"
runat ="server" CommandName ="cmdEdit" />
</ ItemTemplate >
< HeaderTemplate >
Edit
</ HeaderTemplate >
</ asp:TemplateField >
< asp:TemplateField >
< ItemStyle Width ="50px" />
< ItemTemplate >
< asp:ImageButton ID ="lnbDelete" AlternateText ="abc" ImageUrl ="~/image/ico_delete2.gif"
runat ="server" CommandName ="cmdDelete" />
</ ItemTemplate >
< HeaderTemplate >
Delete
</ HeaderTemplate >
</ asp:TemplateField >
< asp:TemplateField >
< ItemStyle Width ="50px" />
< ItemTemplate >
< asp:CheckBox runat ="server" ID ="chkEmployeeSelector" />
</ ItemTemplate >
< HeaderTemplate >
< asp:CheckBox runat ="server" ID ="chkSelectAll" />
</ HeaderTemplate >
</ asp:TemplateField >
</ Columns >
</ asp:GridView >
</ td >
</ tr >
</ table >
</ td >
</ tr >
< tr >
< td colspan ="7" style ="padding-left: 140px" >
< asp:Button ID ="buttonAdd" AccessKey ="a" runat ="server" Text ="Add Employee" SkinID ="AspButton"
OnClientClick ="enableField" OnClick ="ButtonAdd_Click" />
< asp:Button AccessKey ="d" OnClientClick ="return confirm('Are you sure you want to delete all items?');"
runat ="server" ID ="buttonDeleteSelected" Text ="Delete Selected" SkinID ="AspButton"
OnClick ="ButtonDeleteSelected_Click" />
</ td >
</ tr >
</ table >
< asp:ObjectDataSource ID ="odsOrderDetails" runat ="server" TypeName ="Entity.Employee"
DeleteMethod ="DeleteEmployee" SelectMethod ="GetEmployeesByReportsToPaged" SelectCountMethod ="GetEmployeesByReportsToPagedCount"
SortParameterName ="orderby" MaximumRowsParameterName ="maximumRows" StartRowIndexParameterName ="startRowIndex"
EnablePaging ="True" OnDeleted ="odsOrderDetails_Deleted" >
< SelectParameters >
< asp:ControlParameter Name ="reportsTo" ControlID ="dropDownListEmployee" />
< asp:Parameter Name ="orderBy" Type ="String" />
< asp:Parameter Name ="startRowIndex" Type ="Int32" />
< asp:Parameter Name ="maximumRows" Type ="Int32" />
</ SelectParameters >
< DeleteParameters >
< asp:ControlParameter ControlID ="gridViewEmployees" Name ="employeeId" />
</ DeleteParameters >
</ asp:ObjectDataSource >
</ asp:Content >
CodeFile = " listing-page.aspx.cs " Inherits = " Code_Sample_Listing_Page " Title = " Employee Listing Page " %>
<% @ Register Assembly = " App_Code " Namespace = " Utilities " TagPrefix = " CustomControl " %>
< asp:Content ID ="Content2" ContentPlaceHolderID ="ContentPlaceholder1" runat ="Server" >
< table id ="tblOuter" class ="contentcontainerTBL" summary ="table1 summary info" width ="100%" >
< caption >
</ caption >
< thead >
< tr >
< th class ="invisible" title ="Outer table Header" >
</ th >
</ tr >
</ thead >
< tr >
< td >
< br />
< p class ="tblHeaderTitleSize" >
Employees
</ p >
< p >
In this page you will be able to view the list of all employess. Click on the appropriate
buttons to view, insert or update an employee.
</ p >
</ td >
</ tr >
< tr >
< td >
Employee:
< asp:DropDownList ID ="dropDownListEmployee" runat ="server" AppendDataBoundItems ="true"
DataSourceID ="odsEmployeeList" DataTextField ="FirstName" DataValueField ="EmployeeId"
EnableViewState ="false" >
< asp:ListItem Text ="All" Value ="" ></ asp:ListItem >
</ asp:DropDownList >
< asp:ObjectDataSource ID ="odsEmployeeList" runat ="server" TypeName ="Entity.Employee"
EnableViewState ="true" SelectMethod ="SelectAllEmployees" />
< asp:Button runat ="server" Text ="Filter" ID ="buttonFilter" CssClass ="button-search"
AccessKey ="f" Width ="75px" OnClick ="buttonFilter_Click" />
</ td >
</ tr >
< tr class ="spacerrowTBL" >
< td >
< asp:Label EnableViewState ="false" runat ="server" ID ="labelMessage" ></ asp:Label >
</ td >
</ tr >
< tr >
< td >
< table id ="tblInner" class ="uirowcontainerTBL" summary ="table2 summary" >
< caption >
</ caption >
< thead >
< tr >
< th class ="invisible" title ="inner table Header" >
</ th >
</ tr >
</ thead >
< tr >
< td >
< asp:GridView ID ="gridViewEmployees" runat ="server" SkinID ="GridView" DataSourceID ="odsOrderDetails"
DataKeyNames ="EmployeeId" AllowPaging ="True" BorderWidth ="1px" BorderStyle ="Solid"
OnRowCommand ="GridViewEmployees_RowCommand" OnRowDataBound ="GridViewEmployees_RowDataBound"
UseAccessibleHeader ="False" >
< Columns >
< asp:BoundField DataField ="FirstName" HeaderText ="First Name" ReadOnly ="True" SortExpression ="Title" />
< asp:BoundField DataField ="LastName" HeaderText ="Last Name" ReadOnly ="True" SortExpression ="Description" />
< asp:BoundField DataField ="Country" HeaderText ="Country" ReadOnly ="True" SortExpression ="Url" />
< asp:TemplateField >
< ItemStyle Width ="50px" />
< ItemTemplate >
< asp:ImageButton ID ="lnbView" AlternateText ="view" ImageUrl ="~/image/view_icon.gif"
runat ="server" CommandName ="cmdView" />
</ ItemTemplate >
< HeaderTemplate >
View
</ HeaderTemplate >
</ asp:TemplateField >
< asp:TemplateField >
< ItemStyle Width ="50px" />
< ItemTemplate >
< asp:ImageButton ID ="lnbEdit" AlternateText ="edit" ImageUrl ="~/image/edit_icon.gif"
runat ="server" CommandName ="cmdEdit" />
</ ItemTemplate >
< HeaderTemplate >
Edit
</ HeaderTemplate >
</ asp:TemplateField >
< asp:TemplateField >
< ItemStyle Width ="50px" />
< ItemTemplate >
< asp:ImageButton ID ="lnbDelete" AlternateText ="abc" ImageUrl ="~/image/ico_delete2.gif"
runat ="server" CommandName ="cmdDelete" />
</ ItemTemplate >
< HeaderTemplate >
Delete
</ HeaderTemplate >
</ asp:TemplateField >
< asp:TemplateField >
< ItemStyle Width ="50px" />
< ItemTemplate >
< asp:CheckBox runat ="server" ID ="chkEmployeeSelector" />
</ ItemTemplate >
< HeaderTemplate >
< asp:CheckBox runat ="server" ID ="chkSelectAll" />
</ HeaderTemplate >
</ asp:TemplateField >
</ Columns >
</ asp:GridView >
</ td >
</ tr >
</ table >
</ td >
</ tr >
< tr >
< td colspan ="7" style ="padding-left: 140px" >
< asp:Button ID ="buttonAdd" AccessKey ="a" runat ="server" Text ="Add Employee" SkinID ="AspButton"
OnClientClick ="enableField" OnClick ="ButtonAdd_Click" />
< asp:Button AccessKey ="d" OnClientClick ="return confirm('Are you sure you want to delete all items?');"
runat ="server" ID ="buttonDeleteSelected" Text ="Delete Selected" SkinID ="AspButton"
OnClick ="ButtonDeleteSelected_Click" />
</ td >
</ tr >
</ table >
< asp:ObjectDataSource ID ="odsOrderDetails" runat ="server" TypeName ="Entity.Employee"
DeleteMethod ="DeleteEmployee" SelectMethod ="GetEmployeesByReportsToPaged" SelectCountMethod ="GetEmployeesByReportsToPagedCount"
SortParameterName ="orderby" MaximumRowsParameterName ="maximumRows" StartRowIndexParameterName ="startRowIndex"
EnablePaging ="True" OnDeleted ="odsOrderDetails_Deleted" >
< SelectParameters >
< asp:ControlParameter Name ="reportsTo" ControlID ="dropDownListEmployee" />
< asp:Parameter Name ="orderBy" Type ="String" />
< asp:Parameter Name ="startRowIndex" Type ="Int32" />
< asp:Parameter Name ="maximumRows" Type ="Int32" />
</ SelectParameters >
< DeleteParameters >
< asp:ControlParameter ControlID ="gridViewEmployees" Name ="employeeId" />
</ DeleteParameters >
</ asp:ObjectDataSource >
</ asp:Content >