Добавьте свойство Current в элемент управления ASP.NET - PullRequest
0 голосов
/ 14 мая 2010

У меня есть некоторый контроль. Я добавляю один экземпляр этого элемента управления на каждую страницу в событии OnInit и хочу получить доступ к этому элементу управления в других местах следующим образом: Sample.Current

public class Sample : Control
{
    public static Sample Current
    {
        get
        {
            // ???
        }
    }
}

Можете ли вы сказать мне, как лучше всего реализовать это свойство?

1 Ответ

0 голосов
/ 14 мая 2010

Было бы неплохо иметь немного больше деталей - какова цель этого класса? Но я все равно попытаюсь помочь:

Вы сможете получить доступ к этому элементу управления из кода на странице, если на него есть ссылка в коде и динамически не добавлено каким-либо образом во время выполнения. т.е. если это переменная страницы, объявленная как:

Sample ctrl = new Sample();

Затем вы можете ссылаться на него, используя ctrl.Current в вашем коде.

FYI - если вам нужно место для ссылки на классы и переменные для жизненного цикла страницы, вы можете проверить HttpContext.Current.Items http://www.mikeduncan.com/3-hot-uses-for-httpcontextcurrentitems-they-wont-tell-you-about/ Это похоже на сессионный пакет, который существует только для запроса одной страницы - например, если у вас есть класс, содержащий информацию о пользователе, к которой вам нужно обращаться много раз из множества различных элементов управления на странице, вы можете просто вставить этот класс в коллекцию Items, а затем ссылаться на него из любого кода, который выполняется на вашем компьютере. стр.

НТН,
Lance

...