GridView中根据特殊标记设置不可编辑

来源:互联网 发布:淘宝保存图片的软件 编辑:程序博客网 时间:2024/04/30 03:34

RT,今天初步解决了这个问题,解决还不是很好,下次改进。具体方法

 

public static void SetGridViewEditableState(GridView gv)

    {

        string temp = string.Empty;

        for (int i = 0; i < gv.Rows.Count; i++)

        {

            for (int j = 0; j < gv.Rows[i].Cells.Count; j++)

            {

                for (int k = 0; k < gv.Rows[i].Cells[j].Controls.Count; k++)

                {

                    try

                    {

                        temp = ((TextBox)gv.Rows[i].Cells[j].Controls[k]).Text;

                        if (double.Parse(temp) < 0)

                        {

                            gv.Rows[i].Cells[j].Enabled = false;

                        }

                    }

                    catch (Exception)

                    {

                    }

 

                }

            }

        }

    }

 

在这里对代码进行以下解释,我在这里是设置某个单元格为负数时不允许编辑。通过三层遍历找出,第一层遍历行,第二层遍历单元格,第三层遍历单元格中控件。

这里需要解释的是第三层,因为我们加入控件后,如果直接通过强制转换会出现错误

{"无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为类型“System.Web.UI.WebControls.TextBox”。"}

这里可以解释参考:http://hi.baidu.com/xmusincyboy/blog/item/02a0560821edd8376a60fb07.html

解决的办法是再次遍历里面的控件,不管是不是,只管强制转换,异常不处理即可。找到之后将其enabled属性设置为false即可。

原创粉丝点击