RaisePostBackEvent not firing second time after LoadControlState
<p>I am trying to create some control with to input fields and submit button. When I put this control on a page and set the handler for the <code>Click</code> event, it fires only once, when submit button is clicked the first time. But when I click the button a second time, <code>RaisePostBackEvent</code> does not fire. What I am doing wrong?</p>

<pre><code>public class AuthControl : Control, IPostBackEventHandler
{
    public int FailCount { get; set; }

    public AuthControl()
    {
    }

    public string LoginKey { get { return "login"; }}

    public string PasswordKey { get { return "password"; } }

    protected override void Render(HtmlTextWriter writer)
    {
        // &lt;div&gt;
        writer.AddAttribute(HtmlTextWriterAttribute.Class, "field");
        writer.RenderBeginTag(HtmlTextWriterTag.Div);

        // &lt;input type="text" name="login" placeholder="login" /&gt;
        writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
        writer.AddAttribute(HtmlTextWriterAttribute.Name, LoginKey);
        writer.AddAttribute(HtmlTextWriterAttribute.Value, Page.Request.Form[LoginKey]);
        writer.AddAttribute("placeholder", LoginKey);
        writer.RenderBeginTag(HtmlTextWriterTag.Input);
        writer.RenderEndTag();

        // &lt;/div&gt;
        writer.RenderEndTag();

        // &lt;div&gt;
        writer.AddAttribute(HtmlTextWriterAttribute.Class, "field");
        writer.RenderBeginTag(HtmlTextWriterTag.Div);

        // &lt;input type="password" name="password" placeholder="password" /&gt;
        writer.AddAttribute(HtmlTextWriterAttribute.Type, "password");
        writer.AddAttribute(HtmlTextWriterAttribute.Name, PasswordKey);
        writer.AddAttribute(HtmlTextWriterAttribute.Value, Page.Request.Form[PasswordKey]);
        writer.AddAttribute("placeholder", PasswordKey);
        writer.RenderBeginTag(HtmlTextWriterTag.Input);
        writer.RenderEndTag();

        // &lt;/div&gt;
        writer.RenderEndTag();

        // &lt;div&gt;
        writer.RenderBeginTag(HtmlTextWriterTag.Div);

        // &lt;input type="submit" /&gt;
        writer.AddAttribute(HtmlTextWriterAttribute.Name, UniqueID);
        writer.AddAttribute(HtmlTextWriterAttribute.Type, "submit");
        writer.AddAttribute(HtmlTextWriterAttribute.Value, "Authorize");

        // &lt;/div&gt;
        writer.RenderEndTag();

        if (FailCount &gt; 0)
        {
            // &lt;div&gt;
            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            // &lt;span&gt;
            writer.RenderBeginTag(HtmlTextWriterTag.Span);
            writer.Write("Осталось попыток: {0}", 3 - FailCount);

            // &lt;/span&gt;
            writer.RenderEndTag();

            // &lt;/div&gt;
            writer.RenderEndTag();
        }

        base.Render(writer);
    }

    protected override void OnInit(EventArgs e)
    {
        Page.RegisterRequiresControlState(this);
        base.OnInit(e);
    }

    protected override object SaveControlState()
    {
        object baseState = base.SaveControlState();

        object currentState = new Pair(baseState, FailCount);

        return currentState;
    }

    protected override void LoadControlState(object savedState)
    {
        var stateLastRequest = (Pair)savedState;

        base.LoadControlState(stateLastRequest.First);

        FailCount = (int)stateLastRequest.Second + 1;
    }

    public event OnClickEventHandler Click;

    public void RaisePostBackEvent(string eventArgument)
    {
        if (Click != null)
        {
            Click(this, EventArgs.Empty);
        }
    }
}
</code></pre>
