Как я могу динамически получить доступ к атрибутам управления пользователя? - PullRequest
0 голосов
/ 18 марта 2010

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

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

1 Ответ

1 голос
/ 18 марта 2010

вы можете перебрать коллекцию и выполнить переключение или несколько операторов 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);
}

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...