首页 新闻 赞助 找找看

Gridview的行数读取,并进行记录的按钮“屏蔽”

0
悬赏园豆:10 [已解决问题] 解决于 2012-11-07 15:27

后台:

if (jc == "WSDA" || jc == "WSWJFB")
                {
                    foreach (GridViewRow row in GridView.Rows)
                    {
                        LinkButton lbtnAJ = row.FindControl("lbtnAJ") as LinkButton;
                        lbtnAJ.Visible = false;
                    }
                }

在满足条件时,将Gridview行的“案卷”按钮给屏蔽;

用上面的方法的话,会出现Gridview的最后一行的“案卷”按钮没有给去掉,这是为什么呢?该怎么办?

我想到,先读取Gridview的行数,然后for循环,逐行删,但是不会读取Gridview的行数。

请大家帮忙

pengjw的主页 pengjw | 初学一级 | 园豆:3
提问于:2012-11-07 11:28
< >
分享
最佳答案
0

楼主 写程序的时候不要想当然  gridview给提供了事件为什么不用呢

你这个情况比较适合用RowCreated和RowDataBound事件 楼主看看去 我一会给你找点示例代码

PS:话说你这是做政府项目还是什么 肯定不是商用项目吧  GridView很耗性能的

 

RowCreated事件 演示给行加荧光效果

下面的RowDataBound事件是自定义列显示内容的

//每次创建行都引发的事件
    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)   //e.Row就是RowCreated刚创建的行
        {
            
            e.Row.Attributes.Add("onmouseover", "currentgb=this.style.backgroundColor;this.style.backgroundColor='#ff9966';");  //将现在的背景色存在变量currentgb中 同时设置一个新的背景色:#ff9966
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentgb");  //设置鼠标移走的效果为新背景色
        }
    }
//RowDataBound事件:数据绑定后触发的事件(数据绑定后才可以对数据进行判断)
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //如果大于100次点击 就显示较多,否则显示较少
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Cells[4].Text = Convert.ToInt32(e.Row.Cells[4].Text) > 100 ? "<font color='red'>较多</font>" : "<font color='blue'>较少</font>";

            //这里单独new一个Label控件出来是因为要和下面的Image控件一起显示,两个控件都要add到控件集合中,如果仅修改显示的文字,那么上面的一行代码就可以了。
            Label label = new Label();
            label.Text = e.Row.Cells[4].Text;
            e.Row.Cells[4].Controls.Add(label);


            //显示自定义内容也可以显示图片,如下:


            //如果点击次数等于1 那么显示male.gif
            string img = e.Row.Cells[4].Text == "1" ? "male.gif" : "female.gif";

            //实例化Image控件
            Image imgControl = new Image();
            imgControl.ImageUrl = "~/images/" + img;

            //添加到控件集合当中去集合中去
            e.Row.Cells[4].Controls.Add(imgControl);
        }
    }
收获园豆:7
oppoic | 小虾三级 |园豆:770 | 2012-11-07 11:35

谢谢!后面就是在GridView1_RowCreated里解决的,用e.Row.FindControl("lbtnLook") as LinkButton就能读到Gridview的按钮,然后再判断条件里写。我已经感觉到Gridview对性能的影响了,但是我也没办法,我刚毕业到公司来的,这个项目已经成型了,我现在只是在维护着。再次谢谢!

pengjw | 园豆:3 (初学一级) | 2012-11-07 15:23
其他回答(1)
0

GridView.Rows.Count

收获园豆:3
I,Robot | 园豆:9783 (大侠五级) | 2012-11-07 12:52

 谢谢,那个可以读到行数。

支持(0) 反对(0) pengjw | 园豆:3 (初学一级) | 2012-11-07 15:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册