日期:2014-05-18  浏览次数:20544 次

关于GirdView隐藏行的问题。
各位高手,我先描述一下我的问题。
现在要把工程信息表显示到gridview里,没有任何操作。
其中,科员所能够阅读的是他自己所录入的工程信息表(projectinformation)
我想通过隐藏一个行,来实现把别人的录入的工程信息表隐藏掉。
我想通过保存登陆用户名,对它的显示内容进行限定。
我写的程序是:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
  {
  if (e.Row.RowType == DataControlRowType.DataRow)
  {
  if (e.Row.Cells[6].Text == Session["Users"].ToString())
  {
  string ProjectInformationID = GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
  for (int i = 0; i < GridView1.Rows.Count; i++)
  {
  GridView1.Rows[i].Visible = true;
  }
  }
  else
  {
  string ProjectInformationID = GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
  for (int i = 0; i < GridView1.Rows.Count; i++)
  {
  GridView1.Rows[i].Visible = false;
  }
  }
  }
  }
但是,该显示不显示,不该显示的乱显示。简直晕到了极点。希望大家能够指教一下。谢谢了!

------解决方案--------------------
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
 {
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[6].Text == Session["Users"].ToString()) 

e.Row.Cells[i].Visible = false; //i:1,2...
}
}
}
------解决方案--------------------
其实你可以把Session["Users"].ToString() 做为你绑定gridview数据的时候的一个条件.这样的话就根据录入人去绑定数据了


比如 
if(Session["Users"]!= null)
DataRow [] drs = dt.Select(" Username='"+Session["Users"].ToString()+"'");

this.GridView1.DataSource = drs;
this.GridView1.DataBind();