код asp.net за переменной - PullRequest
0 голосов
/ 11 ноября 2009

Я генерирую некоторый заголовок HTML при загрузке страницы, и из-за этого я запрашиваю базу данных один раз. на странице я снова запрашиваю базу данных и помещаю данные в html с помощью встроенного кода.

мой вопрос, есть ли лучший способ сделать это? Я не хочу каждый раз запрашивать базу данных и обращаться к этим заполненным переменным из встроенного кода. что-то вроде page.addVariable в page_load и достигайте тех, которые встроены, как page.variables ["variablename"]

заранее спасибо

Ответы [ 3 ]

3 голосов
/ 11 ноября 2009

Если я понимаю, что вы спрашиваете, вы можете сделать аксессор и установить для него Защищенный. Это позволит вам получить доступ к нему со страницы.

Если вы хотите запретить вызов базы данных при обратных вызовах, вы всегда можете добавить информацию в состояние просмотра на странице.

Информация о состоянии просмотра, скрытых полях и файлах cookie: http://www.csharphelp.com/archives/archive207.html

1 голос
/ 11 ноября 2009

Я не уверен, что это то, что вам нужно, но вы можете использовать HiddenField для хранения любых данных на странице.

Кроме того, если вам не нужно, чтобы он был на странице, вы можете использовать Session или ViewState .

Вот пример использования ViewState в качестве свойства (NB. Вы можете поменять ViewState на Session, посмотрите ссылки, которые я дал вам для объяснения между ними):

public string YourProperty
{
    get
    {
        object content = ViewState["YourProperty"];
        if (content == null)
        {
            return string.Empty;
        }
        return content.ToString();
    }
    set
    {
        ViewState["YourProperty"] = value;
    }
}

Обратите внимание, что все, что вы вводите в ViewState или SessionState, должно быть помечено как Сериализуемый.

Если это довольно простой класс, просто пометьте класс тегом [Serializable].

0 голосов
/ 11 ноября 2009

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

Если данные относятся к конкретному пользователю, вы можете использовать Состояние сеанса .

Если данные являются глобальными для всего приложения, вы можете использовать Состояние приложения .

Независимо от того, что вы используете, вы можете реализовать извлечение данных в Session_Start (будет вызываться только один раз для каждого пользователя) или Application_Start (будет вызываться только один раз при запуске веб-приложения) событий в Global.asax файл.

...