GridView嵌套GridView的一些操作,包括取得主键,CHECKBOX全选等

<% @ 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: "宋体"
}

{
    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 >
            
&nbsp; < table >
                
< tr >
                    
< td >
< 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 >
                        
&nbsp; < 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 >
                                
&nbsp;
                                
< 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值