FileUpload não está funcionando no painel de atualização

Então, o que estou tentando fazer é que um usuário selecione um arquivo para fazer upload. Como vou aceitar apenas imagens, testarei a extensão. Também quero limitar o tamanho do arquivo para menos de 2mb, então testarei isso (ainda não foi implementado no código). Se o arquivo selecionado for aprovado, desejo que o rótulo diga "Arquivo aceito" e armazene as informações de upload do arquivo para um clique posterior no botão. Isso acontecerá assim que o usuário terminar de preencher o restante do formulário. Eventualmente, colocarei um controle UpdateProgress na página enquanto ele estiver verificando se o arquivo é permitido. Eu preferiria não tê-lo postado de volta para isso, então se eu conseguir fazê-lo funcionar, isso seria ótimo. BTW, tudo funcionará bem se eu retirar o rótulo do painel de atualizaçã

O que acontece quando eu executo isso, é que ele irá para a instrução else do primeiro if e retornará "Por favor, selecione um arquivo". Significando que FileUpload1.HasFile está retornando false. A única razão pela qual vejo que isso está acontecendo é porque o UpdatePanel não pode acessar essas informações do controle FileUpload?

Código por trás

    Label SubmitButtonLabel2= (Label)UpdatePanel1.FindControl("SubmitButtonLabel");
    if (FileUpload1.HasFile)
    {
        string[] fileName = FileUpload1.FileName.Split('.');
        if ((fileName[fileName.Length - 1] == "jpg") ||
            (fileName[fileName.Length - 1] == "gif") ||
            (fileName[fileName.Length - 1] == "bmp") ||
            (fileName[fileName.Length - 1] == "jpeg") ||
            (fileName[fileName.Length - 1] == "png"))
        {
            SubmitButtonLabel2.Text = "File Accepted.";
        }
        else
        {
            SubmitButtonLabel2.Text = "File type not allowed.  Please choose another.";
        }
    }
    else
    {
        SubmitButtonLabel.Text = "Please select a file.";
    }

Página

<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="SubmitButton" runat="server" Text="Submit File" OnClick=SubmitButton_Click />
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="always">
            <ContentTemplate>
                <asp:Label ID="SubmitButtonLabel" runat="Server" />
            </ContentTemplate>
            <Triggers>
                <asp:PostBackTrigger ControlID="SubmitButton" />
            </Triggers>
        </asp:UpdatePanel>

    </div>
</form>
</body>

questionAnswers(11)

yourAnswerToTheQuestion