FineUI 官方论坛

标题: 【非BUG】Grid的PreRowDataBound出错 [打印本页]

作者: 550560320    时间: 2016-5-9 20:15
标题: 【非BUG】Grid的PreRowDataBound出错
在AppBox  User.aspx 中原代码如下

        protected void Grid1_PreRowDataBound(object sender, FineUI.GridPreRowEventArgs e)
        {
            User user = e.DataItem as User;

            // 不能删除超级管理员
            if (user.Name == "admin")
            {
                FineUI.LinkButtonField deleteField = Grid1.FindColumn("deleteField") as FineUI.LinkButtonField;
                deleteField.Enabled = false;
                deleteField.ToolTip = "不能删除超级管理员!";
            }
        }



这个语句会直接把 排在admin 后边的 deleteField.Enabled 全部设置成 false , 尽管不是 user.Name == "admin" 。
但 排在admin 前边的 都能正常设置成 true 。 就是说同一个方法,在 user.Name == "admin" 为条件设置成 false后,产生前后不同的两结果,故认为是BUG。

作者: sanshi    时间: 2016-5-10 10:21
这个不是BUG,你给的解决办法就完全正确。

这里要保证逻辑的完备性,因为在PreDataBound操作列属性,其实是同一个列,所以如果在上一行修改了属性,下一行还要还原。官网示例:http://fineui.com/demo/#/demo/grid/grid_prerowdatabound.aspx




欢迎光临 FineUI 官方论坛 (https://www.fineui.com/bbs/) Powered by Discuz! X3.4