FineUI 官方论坛
标题:
授权的部分问题,及让无权限按钮灰掉
[打印本页]
作者:
tukzer
时间:
2013-5-6 16:51
标题:
授权的部分问题,及让无权限按钮灰掉
本帖最后由 tukzer 于 2013-5-6 16:58 编辑
在使用APPBOX时发现,当按钮无权限时,直接将其Eanbled=False,但是此时按钮看上去的效果还是可以点击,实际上点击没有反应?请问是否有对应的CSS或者可以通过设置字体的方式,让你变灰或者变暗。
Button里面没有Color相关的树形,CSSSTYLE添加了貌似没用,有什么方案还是我的弄错了?
另外,我这边Grid的列在通过RowDataBound事件设置权限时,发现第一行有时候会可以点击,后续行不可点击,这是什么原因?
protected void CheckPowerFailWithWindowField(FineUI.Grid grid, string columnId)
{
FineUI.WindowField btn = grid.FindColumn(columnId) as FineUI.WindowField;
btn.Enabled = false;
btn.ToolTip = CHECK_POWER_FAIL_ACTION_MESSAGE;
}
为何这段代码必须放到RowDataBound而不是在数据绑定后直接使用呢,他找的对象看起来是一列,而非逐行啊?
请指教,谢谢!
[补充:不好意思,用Chrome浏览器时发现按钮是灰掉的,但是IE10貌似不能灰掉,具体继续研究下]
作者:
sanshi
时间:
2013-5-6 17:30
“另外,我这边Grid的列在通过RowDataBound事件设置权限时,发现第一行有时候会可以点击,后续行不可点击,这是什么原因?”
=============
这是一个经典的错误用法,可以参考下:
http://www.cnblogs.com/sanshi/archive/2012/10/19/2730381.html
RowDataBound 是行渲染后触发的,所以此时对列属性的改变不会影响最终行的渲染结果,这也是对第一行不起作用的原因。
“Eanbled=False,IE10无法灰掉”
=============
这个可能需要调整CSS吧,用FineUI v3.2.5.3 试下
作者:
tukzer
时间:
2013-5-6 18:06
非常感谢如此快速的回复,自己重写了一个EF版的权限管理,发现Grid的几个事件确实没有掌握好!
IE下面不同版本的这个CSS处理确实效果迥异,后面摸索下!谢谢啦,
作者:
luokaijin
时间:
2013-5-10 17:38
tukzer 你好,我在改写为EF时出现了一个问题无法解决,麻烦你帮看看嘛,具体已经在附件里了,先谢谢哈!
作者:
tukzer
时间:
2013-5-13 16:56
luokaijin 发表于 2013-5-10 17:38
tukzer 你好,我在改写为EF时出现了一个问题无法解决,麻烦你帮看看嘛,具体已经在附件里了,先谢谢哈! ...
不好意思,没及时看到!
你现在确信是因为删除了几个权限声明引起的么?可以调试下ModuleHelper,
或者可以@下sanshi,因为我改写的时候把这一块的内容页改掉了,稍微有些不同。
作者:
luokaijin
时间:
2013-5-15 15:06
本帖最后由 luokaijin 于 2013-5-15 15:12 编辑
tukzer 你好:
我在改写为EF的过程中,代码都是从sanshi给的AppBox复制过来的,其他页面都没问题,只是在“角色模块权限管理”role_module2.aspx页里出了问题。研究了几天也没有找到问题,郁闷!
数据库数据一模一样,public enum ModulePowerType一模一样,public enum ModuleType一模一样,只是修改了RoleModulePowerHelper类下面的GetRoleModuleDictionary(int roleId)方法(从数据库查找角色对应的全部模块权限)而已,其他的都没有动。怎么得到的结果就不一样呢。点击“全选复选框”-》“全部”得到的结果如下图,也不正确。
后台条数的时候看了,获取的数据都正确,可绑定到表格是就好像不正确了,是不是下代码有问题呀:
protected void Grid2_RowDataBound(object sender, FineUI.GridRowEventArgs e)
{
AspNet.CheckBoxList ddlOthers = (AspNet.CheckBoxList)Grid2.Rows[e.RowIndex].FindControl("ddlOthers");
RoleModulePower row = e.DataItem as RoleModulePower;
string moduleName = row.ModuleName;
List<string> otherPowerNames = ModulePowerTypeHelper.GetModuleOtherPowerTypeDic(moduleName);
foreach (string powerName in otherPowerNames)
{
// powerName = "ChangePassword" moduleName = "CoreUser"
AspNet.ListItem item = new AspNet.ListItem();
item.Value = powerName;
item.Text = ModulePowerTypeHelper.GetTitle(moduleName, powerName);
item.Selected = row.OtherPowers[powerName].Value<bool>();
ddlOthers.Items.Add(item);
}
}
但这代码也是从AppBox复杂过来的呀!!!
也问过sanshi老师了,可他忙吧,也没有帮我看看原代码?
你能帮我看看源代码吗?谢谢了
作者:
luokaijin
时间:
2013-5-16 17:07
用新建一“ASP.NET WEB空应用程序” .NET Framework 4,的方式来写sanshi提供的AppBox时,在“角色模块权限”页的表格绑定“其他权限”列显示不正确。今天通过改写sanshi提供的AppBox时,问题得以解决,改写方式为:
1、 打开sanshi提供的AppBox源代码。
2、 右击“AppBox”-》“属性”,“应用程序”-》“目标框架”由2.0改为4.0。
3、 修改Web.config。
4、 删除Subsonic,修改为EF数据库访问方式。
一切OK!
很纳闷,一样的代码,为什么改写就正确呢!!
作者:
luokaijin
时间:
2013-5-17 09:30
问题终于解决了!
在Web.config下的<pages>里添加clientIDMode="AutoID"就OK 了!
作者:
tukzer
时间:
2013-5-19 17:28
恭喜,话说当时不是提供了一个空的解决方案么!你这个问题能找到满不容易的,哈哈
作者:
duke6372
时间:
2013-6-12 09:42
我之前也遇到過同樣的問題。還是web.config配置問題,總結了幾點iis7以上配置的注意事項。。壇子裏有帖子的。搜一下可以參考。
欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/)
Powered by Discuz! X3.4