关于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();