<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %><!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"><STYLE type=text/css>...BODY {...}{ MARGIN-TOP: 0px; FONT-SIZE: 9pt; MARGIN-LEFT: 4px; MARGIN-RIGHT: 0px; FONT-FAMILY: "宋体"}A {...}{ FONT-WEIGHT: 400; FONT-SIZE: 13px; COLOR: black; TEXT-DECORATION: none}A:hover {...}{ FONT-WEIGHT: 400; FONT-SIZE: 13px; COLOR: red; TEXT-DECORATION: underline}A:active {...}{ FONT: 9pt "宋体"; CURSOR: hand; COLOR: #ff0033}</style> <title>无标题页</title> <script type="text/javascript">... function show(tips,flag,url)...{var my_tips=document.all.mytips;if(flag)...{ my_tips.style.display=""; if (url!=null)...{my_tips.innerHTML="<img src='"+url+"'align=left>"+tips;} else...{ my_tips.innerHTML=tips;} my_tips.style.left=event.clientX+10; my_tips.style.top=event.clientY+10; }else ...{ my_tips.style.display="none"; }} </script></head><body> <form id="form1" runat="server"> <div> <table> <tr> <td><a href="#" tips="请选择类别" onmousemove=show(this.tips,1) onmouseout=show(this.tips,0)>请选择类别</a> <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> <asp:ListItem>请选择</asp:ListItem> <asp:ListItem Value="部门">部门/科室</asp:ListItem> <asp:ListItem>学校</asp:ListItem> </asp:DropDownList> <asp:CheckBox ID="chk_All" runat="server" OnCheckedChanged="chk_All_CheckedChanged" Text="全选" AutoPostBack="True" /> <asp:Button ID="btn_Submit" runat="server" OnClick="btn_Submit_Click" Text="确定" /> </td> <td> </td> </tr> <tr> <td> <asp:GridView ID="grv_DepartMent" runat="server" AutoGenerateColumns="False" DataKeyNames="DepartmentID" OnRowDataBound="grv_DepartMent_RowDataBound" OnRowCommand="grv_DepartMent_RowCommand"> <Columns> <asp:BoundField DataField="DepartmentID" HeaderText="DepartmentID" /> <asp:BoundField DataField="DepartMentName" HeaderText="部门名称" /> <asp:TemplateField> <EditItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" /> </EditItemTemplate> <ItemTemplate> <asp:CheckBox ID="chk_SelectDepartment" runat="server" AutoPostBack="True" OnCheckedChanged="chk_SelectDepartment_CheckedChanged" Text="选择该部门" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:GridView ID="grv_User" runat="server" AutoGenerateColumns="False" Width="100%"> <Columns> <asp:BoundField DataField="RealName" HeaderText="用户名" /> <asp:TemplateField> <EditItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" /> </EditItemTemplate> <ItemTemplate> <asp:CheckBox ID="chk_User" runat="server" /> </ItemTemplate> <ItemStyle Width="15px" /> </asp:TemplateField> </Columns> </asp:GridView> </ItemTemplate> </asp:TemplateField> </Columns> <EmptyDataTemplate> <asp:GridView ID="grv_User" runat="server" AutoGenerateColumns="False" ShowHeader="False"> <Columns> <asp:BoundField DataField="RealName" /> <asp:TemplateField> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:CheckBox ID="chk_User" runat="server" Text="选择" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </EmptyDataTemplate> </asp:GridView> </td> <td> <asp:DataList ID="dlst_DepartMent" runat="server" DataKeyField="DepartMentID" OnItemDataBound="dlst_DepartMent_ItemDataBound"> <ItemTemplate> <table style="width: 100%; height: 100%"> <tr> <td> <asp:Label ID="lbl_DepartMentName" runat="server" Text='<%# Eval("DepartMentName") %>'></asp:Label> <asp:CheckBox ID="chk_DepartMent" runat="server" AutoPostBack="True" OnCheckedChanged="chk_DepartMent_CheckedChanged" /></td> </tr> <tr> <td> <asp:GridView ID="grv_UserView" runat="server" AutoGenerateColumns="False" Width="100%"> <Columns> <asp:BoundField DataField="RealName" HeaderText="用户名" /> <asp:TemplateField> <ItemStyle Width="15px" /> <ItemTemplate> <asp:CheckBox ID="chk_SUser" runat="server" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </td> </tr> <tr> <td> </td> </tr> </table> </ItemTemplate> <HeaderTemplate> <asp:CheckBox ID="chk_SelectAll" runat="server" AutoPostBack="True" OnCheckedChanged="chk_SelectAll_CheckedChanged" Text 后台代码: using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using BigOA.Logic;using BigOA.Data;public partial class test : System.Web.UI.Page...{ protected void Page_Load(object sender, EventArgs e) ...{ if (!IsPostBack) ...{ SetList(); LoadDepartMentData(); } if (Request["ID"] != null) ...{ } } /**//// <summary> /// 用户列表 /// </summary> private void SetList() ...{ if (DropDownList1.SelectedIndex > 0) ...{ chk_All.Enabled = true; string dtype = DropDownList1.SelectedValue; BigOA.Data.User_BasicInfoTableAdapters.User_BasicInfo_SelectDTypeTableAdapter Adapter = new BigOA.Data.User_BasicInfoTableAdapters.User_BasicInfo_SelectDTypeTableAdapter(); BigOA.Data.User_BasicInfo.User_BasicInfo_SelectDTypeDataTable Table = Adapter.GetDataByDType(dtype); Adapter.Dispose(); dgv_SchoolDepartment.DataSource = Table; dgv_SchoolDepartment.DataBind(); } else ...{ chk_All.Enabled = false; } } private void LoadDepartMentData() ...{ BigOA.Data.User_BasicInfoTableAdapters.User_BasicInfo_GetDepartmentTableAdapter adpt = new BigOA.Data.User_BasicInfoTableAdapters.User_BasicInfo_GetDepartmentTableAdapter(); BigOA.Data.User_BasicInfo.User_BasicInfo_GetDepartmentDataTable table = adpt.GetDepartMentNameGetData(); adpt.Dispose(); grv_DepartMent.DataSource = table; grv_DepartMent.DataBind(); dlst_DepartMent.DataSource = table; dlst_DepartMent.DataBind(); } private void LoadUserData(int DepartmentID, GridView grv) ...{ BigOA.Data.User_BasicInfoTableAdapters.User_BasicInfoSimpleTableAdapter adpt = new BigOA.Data.User_BasicInfoTableAdapters.User_BasicInfoSimpleTableAdapter(); BigOA.Data.User_BasicInfo.User_BasicInfoSimpleDataTable table = adpt.GetDataByDepartmentID(DepartmentID); grv.DataSource = table; grv.DataBind(); } protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) ...{ SetList(); } protected void btn_Submit_Click(object sender, EventArgs e) ...{ foreach (GridViewRow grvRow in dgv_SchoolDepartment.Rows) ...{ CheckBox chk = (CheckBox)grvRow.FindControl("chk_Select"); if (chk.Checked) ...{ } } } protected void chk_All_CheckedChanged(object sender, EventArgs e) ...{ bool flag = chk_All.Checked; foreach (GridViewRow grvRow in dgv_SchoolDepartment.Rows) ...{ CheckBox chk = (CheckBox)grvRow.FindControl("chk_Select"); chk.Checked = flag; } foreach (GridViewRow grvDeptRow in grv_DepartMent.Rows) ...{ CheckBox chk = (CheckBox)grvDeptRow.FindControl("chk_SelectDepartment"); chk.Checked = flag; GridView grv_User = (GridView)grvDeptRow.FindControl("grv_User"); foreach (GridViewRow grvUserRow in grv_User.Rows) ...{ CheckBox chk_user = (CheckBox)grvUserRow.FindControl("chk_User"); chk_user.Checked = flag; } } } protected void grv_DepartMent_RowDataBound(object sender, GridViewRowEventArgs e) ...{ if (e.Row.RowType == DataControlRowType.DataRow) ...{ //获取gridview主键 DataKey key = grv_DepartMent.DataKeys[e.Row.RowIndex]; //获取gridview一行中的数据 DataRowView _view = (DataRowView)e.Row.DataItem; string DepartmentID2 = _view["DepartmentID"].ToString(); int DepartmentID = Convert.ToInt32(key.Value); GridView grv = (GridView)e.Row.FindControl("grv_User"); LoadUserData(DepartmentID, grv); //gridview鼠标经过改变行背景色 e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='ivory'"); e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='white' "); } } protected void grv_DepartMent_RowCommand(object sender, GridViewCommandEventArgs e) ...{ } protected void chk_SelectDepartment_CheckedChanged(object sender, EventArgs e) ...{ CheckBox chk = (CheckBox)sender; bool flag = chk.Checked; GridViewRow row = (GridViewRow)chk.NamingContainer; GridViewRow curRow = (GridViewRow)chk.Parent.Parent; DataKey key = grv_DepartMent.DataKeys[row.RowIndex]; GridView grv = (GridView)row.FindControl("grv_User"); foreach (GridViewRow grvrow in grv.Rows) ...{ CheckBox chk_user = (CheckBox)grvrow.FindControl("chk_User"); chk_user.Checked = flag; } } protected void dlst_DepartMent_ItemDataBound(object sender, DataListItemEventArgs e) ...{ if (e.Item.ItemType == ListItemType.Item) ...{ object key = dlst_DepartMent.DataKeys[e.Item.ItemIndex]; int DepartmentID = Convert.ToInt32(key); GridView grv = (GridView)e.Item.FindControl("grv_UserView"); LoadUserData(DepartmentID, grv); } } protected void chk_SelectAll_CheckedChanged(object sender, EventArgs e) ...{ CheckBox chk_SelectAll = (CheckBox)sender; bool flag = chk_SelectAll.Checked; foreach (DataListItem item in dlst_DepartMent.Items) ...{ CheckBox chk_DepartMent = (CheckBox)item.FindControl("chk_DepartMent"); chk_DepartMent.Checked = flag; GridView grv_UserView=(GridView)item.FindControl("grv_UserView"); foreach (GridViewRow row in grv_UserView.Rows) ...{ CheckBox chk_SUser =(CheckBox) row.FindControl("chk_SUser"); chk_SUser.Checked = flag; } } } protected void chk_DepartMent_CheckedChanged(object sender, EventArgs e) ...{ CheckBox chk_DepartMent = (CheckBox)sender; bool flag = chk_DepartMent.Checked; DataLi