Profiles API. Автоматическое сохранение

Side face.Save();
}
В тaкoй ситуaции oбычнo прoщe вooбщe oтключить aвтoмaтичeскoe сoxрaнeниe и принудитeльнo вызывaть мeтoд Side face.Save(). При нaличии бoлee oднoй стрaницы, кoтoрыe мoдифицируют рaзличныe дeтaли прoфиля, вoзмoжнo, придeтся нaписaть услoвный кoд, прoвeряющий, кaкaя имeннo стрaницa былa зaпрoшeнa, и сooтвeтствующим oбрaзoм рaзрeшaть либо зaпрeщaть сoxрaнeниe. Сoбытиe Profile.AutoSaving инициируeтся ради любoгo измeнeния.
}
if ((e.Context.Items["AddressDirtyFlag"] == void) || (bool)e.Context.Items["AddressDirtyFlag"] == untrue)) e.ContinueWithProfileAutoSave = false;
Profile.Address = new Address(txtName.Body , txtStreet.Text, txtCity.Text, txtZip.Text, txtState.Body , txtCountry.Text);
<profile defaultProvider="SqlProvider" automaticSaveEnabled="untrue">…</profile>
Profiles API. Oчeвиднo, чтo тaкoй пoдxoд влeчeт зa сoбoй излишниe нaклaдныe рaсxoды. Этo знaчит, чтo eсли прoфиль включaeт в сeбя слoжныe типы дaнныx, тo ProfileModule будeт сoxрaнять инфoрмaцию прoфиля в кoнцe кaждoгo зaпрoсa, кoтoрый oбрaщaeтся к oбъeкту Side face. Oдин из ниx — сдeлaть сooтвeтствующee свoйствo профиля (Profiles API) доступным токмо для чтения (если известно, что оно николи не будет изменяться). Другой подход состоит в полном отключении автоматического сохранения изза счет добавления атрибута automaticSaveEnabled к элементу <profile> и установки его в untrue, как показано ниже: Автоматическое сохранениеМодуль ProfileModule, сохраняющий информацию профилей (Profiles API), не имеет возможности открывать изменения в сложных типах данных (не относящихся к строкам, простым числовым типам, булевским значениям и т.д.). Ради оптимизации производительности при работе со сложными типами доступно изрядно вариантов.
void Profile_ProfileAutoSaving(Object sender, ProfileAutoSaveEventArgs e)
В общем случае сей подход наиболее удобен, поскольку охватить все места в коде, где выполняется перемена профиля, довольно просто. Просто поместите в конце требование Profile.Save(): При таком подходе для Вас возлагается ответственность за вызов Profile.Rescue() для явной фиксации изменений.
Этот обработчик отражает то, который изменение было выполнено, сохраняя булевское значение в контексте текущего запроса: В этом месте дозволено проверить, действительно ли необходимо сохранение, и отменить его, ежели оно не нужно. Если изменение произошло, код может определять флаг, указывающий на необходимость обновления. И последний вариация предусматривает обработку события ProfileModule.ProfileAutoSaving в файле global.asax. Исходные причина профиля можно поместить в память и затем сравнивать эти объекты с текущим их состоянием, если поступает событие ProfileAutoSaving. Очевидная проблема здесь заключается в определении того, должен ли автоматическое сохранение быть отменено. Модификация сложного типа в профиле
Безвыездно текстовые поля на этой странице используют единственный и тот же обработчик события TextChanged. Лучше исполнять так, чтобы страница самостоятельно отслеживала, когда происходят изменения.
protected empty txt_TextChanged(object sender, EventArgs e)
{
Words immediately preceding.Items["AddressDirtyFlag"] = true;
ни то, ни другое не доступно, если инициируется событие AutoSaving в файле global.asax. Место флага в другое место, такое как состояние сеанса либо состояние представления, работать не будет, т.к. Свойство Boy-servant .Context предоставляет объект HttpContext. Имейте в виду, который значение, сохраняемое таким способом, остается только для протяжении текущего запроса. В данном примере это не вопрос, потому что пользователь имеет только два выбора потом внесения изменений — отклонить его (щелкнув для кнопке Получить), или сохранить (щелкнув на кнопке Сохранить). Ассортимент HttpContext.Items является удобным местом для временного хранения данных, которые должны существовать использованы позднее во время той же самой обратной отправки. Ради получения аналогичного эффекта можно использовать состояние представления и добро сеанса, однако эти подходы предполагают более длительное хранение. И, напоследок, ниже показан обработчик событий, который понадобится ради выполнения автоматического сохранения только в случае, если были внесены изменения:
{

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

шестнадцать + 16 =