现在的位置: 首页 > 综合 > 正文

DataGrid数据隐藏与显示

2012年04月18日 ⁄ 综合 ⁄ 共 3403字 ⁄ 字号 评论关闭

1 ItemDataBound事件

 

private void DG_DataRet_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  {
   //初始绑定的时候,如果绑定的是表头,则加载AP多语言包
   if (e.Item.ItemType==ListItemType.Header)
   {
    e.Item.Cells[0].Text=Resource["56002"].ToString();
    e.Item.Cells[1].Text=Resource["56003"].ToString();
    e.Item.Cells[2].Text=Resource["56004"].ToString();
    e.Item.Cells[3].Text=Resource["56005"].ToString();
    e.Item.Cells[4].Text=Resource["56006"].ToString();
    e.Item.Cells[5].Text=Resource["56007"].ToString();
    e.Item.Cells[6].Text=Resource["56008"].ToString();
    e.Item.Cells[7].Text=Resource["56009"].ToString();
    e.Item.Cells[8].Text=Resource["56010"].ToString();
    e.Item.Cells[9].Text=Resource["56011"].ToString();
    e.Item.Cells[10].Text=Resource["56012"].ToString();
    e.Item.Cells[11].Text=Resource["56013"].ToString();
    e.Item.Cells[12].Text=Resource["56014"].ToString();
   }
   //初始绑定的时候,如果绑定的是数据,则隐藏二级数据
   if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
   {
    //得到已绑定的表
    DataTable dt=(DataTable)this.DG_DataRet.DataSource;
    //得到Region和Country的值
    string Region=dt.Rows[e.Item.ItemIndex][0].ToString();
    string Country=dt.Rows[e.Item.ItemIndex][1].ToString();
    //得到LinkButton的Region按钮
    LinkButton LB_Region=( LinkButton )e.Item.FindControl("LB_Region");
    LB_Region.CommandArgument=e.Item.ItemIndex.ToString();
                //如果用户是AP级别,并且刚绑定的数据Region为空,则把该数据隐藏
    if (Role=="AP" && Region=="")
    {
     e.Item.Style.Add("display","none");
     
     
     
    }
    //如果用户是Country级别,并且刚绑定的数据Country为空,则把该数据隐藏
    if (Role=="Country" && Country=="")
    {
     e.Item.Style.Add("hidden","true");
    }
   }
   

  }

2 ItemCommand事件

 

protected void DG_DataRet_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   //先确定点击的是哪一行数据
   int CurIndex=e.Item.ItemIndex;
   //DataTable dt=(DataTable) this.DG_DataRet.DataSource;
   string UserCode=this.CurrentUserCode.ToString();
   DataTable dt=Business.WOSDetail.GetWOSData(DateTime.Now.ToString(),UserCode);
   int i;
   //如果点击的是Region按钮
   if (e.CommandName=="LB_Region")
   {
    //从点击的当前行循环到最后一行,找到下一个Region不为空的数据行
    for ( i=CurIndex+1;i<dt.Rows.Count;i++)
    {
     if ( dt.Rows[i]["Region"].ToString()!="" )
     {
      
      break;
     }
      
    }
    //如果点击行的下一行数据为隐藏,则显示
    if (this.DG_DataRet.Items[CurIndex+1].Style["display"].ToString()=="none")
    {
     //从当前行的下一行循环到下一个Region的上一行
     for (int j=CurIndex+1;j<=i-1;j++)
     {
      //将所有Country不为空的数据显示
      if ( dt.Rows[j]["Ctry"].ToString()!="" )
      {

       this.DG_DataRet.Items[j].Style.Add("display","block");
      }
     }
    }
     //如果点击行的下一行数据为显示,则隐藏
    else
    {
     for (int j=CurIndex+1;j<=i-1;j++)
     {
      
      this.DG_DataRet.Items[j].Style.Add("display","none");
      
     }
    }

   }
   //如果点击的是Country的LinkButton
   if (e.CommandName=="LB_Ctry")
   {
    //从点击的当前行循环到最后一行,找到下一个Country不为空的数据行
    for ( i=CurIndex+1;i<dt.Rows.Count;i++)
    {
     if ( dt.Rows[i]["Region"].ToString()!="" || dt.Rows[i]["Ctry"].ToString()!="")
     {
      
      break;
     }
      
    }
    //如果点击行的下一行数据为隐藏,则显示
    if (this.DG_DataRet.Items[CurIndex+1].Style["display"].ToString()=="none")
    {
     for (int j=CurIndex+1;j<=i-1;j++)
     {
     
      this.DG_DataRet.Items[j].Style.Add("display","block");
     
     }
    }
    else
    {
     for (int j=CurIndex+1;j<=i-1;j++)
     {
     
      this.DG_DataRet.Items[j].Style.Add("display","none");
     
     }
    }
    
   }
  }

抱歉!评论已关闭.