15 декабря 2009 г.

Блокирование кнопки после нажатия

Честно говоря, никогда не думал, что пользователи такие паникеры. Дошло уже до того, что пользователи напрочь игнорируют надпись “Пожалуйста, подождите…” и анимацию около этой надписи. Вот и встал вопрос, как же сделать так, чтобы пользователи просто не тискали на эту кнопку как сумасшедшие. Выход был прост. Блокировать кнопку да и все. Как это сделать? Для решения этого вопроса я обратился к своей любимой CMS mojoPortal. И вот какой код нарыл. Метод прост, а его пользу и не передать.

public static void DisableButtonAfterClick(
        WebControl button,
        string disabledText,
        string postbackEventReference)
    {
        if (button == null) return;
        button.Attributes.Add("onclick", "this.value='"
            + disabledText
            + "';this.disabled = true;"
            + postbackEventReference);
    }

А вот как его использовать

DisableButtonAfterClick(
                Button1,
                "Пожалуйста, подождите...",
                Page.ClientScript.GetPostBackEventReference(this.Button1, string.Empty)
                );

Комментариев нет: