2010-03-18 5 views
0

Im пытается создать «пользовательское меню управления», где ссылки на пользовательские элементы управления страницы размещаются в верхней части страницы. Это позволит мне добавить несколько пользовательских элементов на страницу и позволить пользователю переходить на этот раздел страницы без прокрутки. Чтобы сделать это, я поместил каждый usercontrol в папку (usercontrols) и дал каждому элементу управления свойство Description (<%@ Control Language="C#" Description = "Vehicles" .... %>).Как я могу динамически получить доступ к атрибутам пользовательского управления?

Мой вопрос: как я могу получить доступ к этому описанию динамически? Я хочу использовать это описание в качестве ссылки в моем меню. Пока у меня есть foreach на моей странице, которая выглядит в ControlCollection для элемента управления типа ASP.usercontrols. Если это так, я бы предположил, что могу получить доступ к его атрибутам и захватить это свойство описания. Как я могу это сделать? (Im также открыт для лучшего способа достижения моего «пользовательского меню управления», но, возможно, это другой вопрос.) Должен ли я использовать ((System.Web.UI.UserControl)mydynamiccontrol).Attributes.Keys?

ответ

1

вы можете перебрать коллекцию и сделать либо переключатель или несколько, если заявления

Я suggst у вас есть интерфейс или абстрактный базовый класс для всех пользовательских элементов управления:

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); 
} 

Надеется, что это помогает

+0

I думайте, что вы делаете хороший момент. Я, вероятно, сделаю это сложнее, чем должен. Мне все еще любопытно, как получить доступ к атрибуту Description в пользовательском элементе управления. Если я попытаюсь выполнить итерацию по коллекции атрибутов, я просто получаю пустую коллекцию. – rahkim