FineUI 官方论坛

标题: 【已确认】FineUI.LinkButtonField 会自动继承上次的设置属性 [打印本页]

作者: 老鱼翁    时间: 2016-1-10 16:34
标题: 【已确认】FineUI.LinkButtonField 会自动继承上次的设置属性
在AppBox_v4.1_source_all  里的用户管理里
记录绑定事件里,设置当前行的FineUI.LinkButtonField属性时。判断当前用户是不是管理员,如果是管理员关闭删除按钮并设定提示。
在admin用户后的所有记录按钮也都会被关闭。可以点,用户名排序就可以发现后面所有用户也都不能删除。
FineUI.LinkButtonField属性设置后一直被继承,请三石老大看下谢谢。。现在只能加个代码把属性清空。

原来代码:
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 = "不能删除超级管理员!";
            }



修改后:
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 = "不能删除超级管理员!";
            }
            else
            {
                FineUI.LinkButtonField deleteField = Grid1.FindColumn("deleteField") as FineUI.LinkButtonField;
                deleteField.Enabled = true;
                deleteField.ToolTip = "";
            }
        }

作者: sanshi    时间: 2016-1-10 17:35
这个不是 FineUI 的BUG,是AppBox的一个BUG, 你的修正是对的!

表格列在多次进入 PreRowDataBound 时是同一个对象(不是什么自定继承啥的),所以上次修改的属性,下次再进入 PreRowDataBound  时,当然是上次修改过的。

官网示例:http://fineui.com/demo/#/demo/grid/grid_prerowdatabound.aspx
作者: 老鱼翁    时间: 2016-1-13 08:12
这样在控制时不方便,请试下AppBox_v4.1_source_all
本来只禁止admin行的删除按钮,变成禁止admin用户行的删除按钮和之后记录的删除按钮
之所以没马上发现是默认排序admin排在最后.点下用户名排序就会发现问题。





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