Получите группу проверки, которая используется в обратной передаче - PullRequest
2 голосов
/ 14 июня 2011

Я работаю с устаревшим проектом в C # (.NET 2.0). В этом проекте есть две группы проверки. Один для пользовательского контроля входа в систему и один для пользователей, чтобы представить в рассылку. Проблема, с которой я столкнулся, заключается в том, что когда пользователь отправляет подписку на новостную рассылку, в методе page_prerender () запускается некоторый пользовательский код, который должен запускаться только при попытке пользователя войти в систему.

Я искал решение, чтобы распознать, какая из двух групп используется при обратной передаче, чтобы я мог игнорировать пользовательский код при необходимости. Моя идея состояла в том, чтобы попытаться проверить, какая из двух групп проверки используется для проверки. К сожалению, потратив несколько бесполезных часов на Google, я не смог найти ничего, что позволило бы мне узнать, как на самом деле узнать, какая группа проверки используется при проверке. Есть ли способ узнать?

<asp:Button ID="btn_newsletter" 
            runat="server" 
            Text="Verzend" 
            ValidationGroup="newsLetter" 
            meta:resourcekey="bnt_newsletter"
            OnClick="handleNewsLetter"
            CssClass="roundedButtonBig" 
 />


<asp:Button ID="LoginButton" 
            runat="server" 
            CommandName="Login" 
            Text="Inloggen" 
            ValidationGroup="lgnUser" 
            meta:resourcekey="LoginButtonResource1" 
            CssClass="roundedButtonBig" 
 />

Следующий код должен срабатывать только при нажатии кнопки LoginButton, и это нужно сделать в Pre_render (). Или, в качестве альтернативы, передайте правильную группу ValidationGroup (где теперь передается значение null).

protected void Page_PreRender(object sender, EventArgs e)
{

    //Register custom ValdiationErrorService added errors to JavaScript so they can be added into the popup.
    ValidationErrorService.RegisterServerValidationMessageScript(Page, null);

}

1 Ответ

0 голосов
/ 14 июня 2011

, чтобы проверить, какая группа проверки действительна, позвоните:

Page.Validate(“newLetter”);

, затем отметьте

Page.IsValid;

это вернет значение. Скотт Гу имеет больше в своем блоге

edit Вы также хотите знать, какая кнопка была нажата в событии prerender, как это звучит. Хотя вы не можете выяснить это по параметрам, переданным в prerender страницы, вы можете положиться на события кнопки, происходящие до события page_prerender. в коде страниц aspx создайте переменную-член. эта переменная будет использоваться для обозначения того, должна ли выполняться логика предварительного отображения.

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

в заключение проверьте вашу локальную переменную в методе page_prerender и инкапсулируйте свою логику в операторе if на основе новой переменной-члена.

Счастливые тропы!

...