我正在尝试创建一个“用户控制菜单”,其中指向页面用户控件的链接放在页面顶部。这将允许我在页面上放置几个用户控件,并允许用户跳转到页面的该部分而不会滚动太多。为此,我将每个usercontrol放在一个文件夹(usercontrols)中,并为每个控件提供一个Description属性(<%@ Control Language="C#" Description = "Vehicles" .... %>
)。
我的问题是如何动态访问此说明?我想将此描述用作菜单中的链接。到目前为止,我在我的页面上有一个foreach,它在ControlCollection中查找ASP.usercontrols类型的控件。如果是,我会假设我可以访问其属性并获取该描述属性。我怎样才能做到这一点? (我也可以通过更好的方式来实现我的“用户控制菜单”,但也许这就是另一个问题。)我应该使用((System.Web.UI.UserControl)mydynamiccontrol).Attributes.Keys
吗?
答案 0 :(得分:1)
你可以遍历集合并执行切换或几个if语句
我建议您为所有用户控件设置接口或抽象基类:
public abstract class MyBaseClass : UserControl
{
public abstract string MyDescription {get;}
}
public MyUserControlA : MyBaseClass
{
public string MyDescription {get {return "my description";}}
}
public MyUserControlB : MyBaseClass
{
public string MyDescription {get {return "my other description";}}
}
然后你可以像你一样循环遍历它们:
foreach ...
if (mydynamiccontrol is MyBaseClass)
{
Response.Write(((MyBaseClass)mydynamiccontrol).MyDescription);
}
希望这有帮助