qhnokia

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
代码
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();
}
}

 

代码
<%@ 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>
&nbsp;<asp:CheckBox runat="server" ID="chkEmployeeSelector" />
</ItemTemplate>
<HeaderTemplate>
&nbsp;<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>

 

posted on 2010-02-24 16:37  其乐无穷  阅读(187)  评论(0编辑  收藏  举报