根据许可证类型启用/禁用控件

时间:2009-12-28 06:54:59

标签: c# .net

我有一个.NET 2.0,应用程序有几种类型的控件(复选框,按钮等),我需要根据用户购买的许可证类型启用或禁用它们。我想知道是否有一种方法可以支持这个作为Aspect,比如使用可以拦截对Enable或Control的其他属性的调用的Injection或Proxy,并且可以在那里添加所需的逻辑。 如果重要,我使用Infragistics控件。 关于这个问题的任何其他想法?其他方法/模式? 感谢

4 个答案:

答案 0 :(得分:1)

你可以创建一个自定义属性来装饰控件,然后递归遍历所有控件并检查该属性以设置所需的状态。

答案 1 :(得分:0)

是否无法在Form_Load()事件中执行此操作?

if(LicenseType.SomeCheckBoxDisabled) {
    Form1.SomeCheckBox.Enabled = false;
}

答案 2 :(得分:0)

为要保护的每个控件添加其他属性。有点像...

<asp:Button ID="Button1" runat="server" RequiredLicense="PremiumEdition">Click here</asp:Button>

如果我没记错的话,ASP.NET允许您向控件添加未定义的属性,这些属性将在控件的Attributes属性中提供。

然后,在您的BasePage类的初始化(即PreRender,PageLoad等)中,您可以递归遍历页面的控件并查找具有“RequiredLicense”属性的控件,并根据需要隐藏或禁用。

答案 3 :(得分:0)

感谢所有答案。我认为我的问题不明确,因为我不确定我在寻找什么。 我正在寻找的答案:我的应用程序是使用CAB框架编写的。为了根据销售的包启用/禁用应用程序中的控件,我将使用SCFS中实现的命令模式。 感谢