一、表格设置
1、在页面上添加一个按钮控件,ID设置为:“SELECT_DATA”,TEXT属性设置为:“提取数据”
2、在页面上添加一个DataGrid表格控件,给表格添加一个绑定列,页眉文本为“部门”,绑定字段为“dept”,一个模板列,页眉文本为“显示部门”
3、编辑模板列:在ItemTemplate项中添加两个按钮,按钮的Text属性分别为“人员清单”和“隐藏”,按钮的ID属性分别为:“select”和“cancel”, 其中“人员清单” 按钮的CommandName属性设置为:“select”.
二、CS代码
1、//页面初始化代码

public class WebForm1 : System.Web.UI.Page
{
      protected System.Web.UI.WebControls.DataGrid DataGrid1;
      protected System.Web.UI.WebControls.Button SELECT_DATA ;
      private static SqlConnection con;
      private static SqlDataAdapter da;
      private static DataSet ds;
      private static DataView dv;
      private void Page_Load(object sender, System.EventArgs e)
     {
         //防止页面重复加载
         if(!IsPostBack)
         {
            //创建数据库连接
            con=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["server"]);
         }
}
2、//提取数据按钮单击事件代码
private void SELECT_DATA _Click(object sender, System.EventArgs e)
{
      //打开数据库
      con.Open();
      //从数据库中提取部门数据
      da=new SqlDataAdapter("select dept from dept",con);
      //创建记录集对象
      ds=new DataSet();
      //将数据库中提取出的数据加载到记录集中,并设置表的别名为DEPT
      da.Fill(ds,"dept");
      //从数据库中提取人员清单数据
      da=new SqlDataAdapter("select userid,name,level,station,dept from verifya",con);
      //将数据库中提取出的数据加载到记录集中,并设置表的别名为VERIFY
      da.Fill(ds,"verify");
      //关闭数据库
      con.Close();
      //将部门表作为表格的数据源
      DataGrid1.DataSource=ds.Tables["dept"];
      //绑定数据
      DataGrid1.DataBind();
}
3、单击人员清单按钮后调用表格的ItemCommand事件,根据点击行的部门提取人员清单
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//判断点击的按钮是不是人员清单按钮
    if(e.CommandName=="select")
    {
        //获取数据视图对象的数据源
        dv=new DataView(ds.Tables["verify"]);
        //设置过滤条件
        dv.RowFilter="dept='"+e.Item.Cells[0].Text.ToString()+"'";
        //将数据视图对象作为模板列中表格的数据源
       ((DataGrid)e.Item.FindControl("DataGrid2")).DataSource=dv;
        //模板列中的表格绑定数据
       ((DataGrid)e.Item.FindControl("DataGrid2")).DataBind();
        //将模板列中的表格在页面上显示出来
       ((Button)e.Item.FindControl("cancel")).Visible=true;
    }
   else
    {
        //将模板列中的表格数据源清空
        ((DataGrid)e.Item.FindControl("DataGrid2")).DataSource="";
        //重新绑定
        ((DataGrid)e.Item.FindControl("DataGrid2")).DataBind();
        //隐藏模板列中的表格
        ((Button)e.Item.FindControl("cancel")).Visible=false;
    }
}