Executar javascript após o envio do formulário no painel de atualização?

Isto está me enlouquecendo! Eu li pelo menos cinco perguntas aqui relacionadas ao meu problema e provavelmente mais ou menos cinco páginas apenas no Google. Eu simplesmente não entendo.

Estou tentando exibir uma caixa de diálogo jqueryui depois que um usuário preenche um formulário dizendo 'registro enviado' e depois redireciona para outra página, mas não consigo fazer com que o javascript funcione, nem mesmo um único alerta.

Aqui está o meu painel de atualização:

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="upForm" runat="server" 
    UpdateMode="Conditional" ChildrenAsTriggers="False">
    <ContentTemplate>
               'Rest of form'
         <asp:Button ID="btnSubmit" runat="server" Text="Submit" /> 
              <p>Did register Pass? <%= registrationComplete %></p>
    </ContentTemplate>
</asp:UpdatePanel>

O Jquery que eu quero executar: (No momento, isso está na cabeça da marcação, com autoOpen definido como false)

<script type="text/javascript"> 
function pageLoad() {

    $('#registerComplete').dialog({
        autoOpen: true,
        width: 270,
        resizable: false,
        modal: true,
        draggable: false,
        buttons: {
          "Ok": function() {
          window.location.href = "someUrl";
        }
        }
    });

}
     </script>

Finalmente meu código por trás: (Comentei todas as coisas que tentei)

Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSubmit.Click     
      'Dim sbScript As New StringBuilder()'
           registrationComplete = True
            registrationUpdatePanel.Update()

            'sbScript.Append("<script language='JavaScript' type='text/javascript'>" + ControlChars.Lf)'
            'sbScript.Append("<!--" + ControlChars.Lf)'
            'sbScript.Append("window.location.reload()" + ControlChars.Lf)'
            'sbScript.Append("// -->" + ControlChars.Lf)'
            'sbScript.Append("</")'
            'sbScript.Append("script>" + ControlChars.Lf)'

            'ScriptManager.RegisterClientScriptBlock(Me.Page, Me.GetType(), "AutoPostBack", sbScript.ToString(), False)'
            'ClientScript.RegisterStartupScript("AutoPostBackScript", sbScript.ToString())'
                            'Response.Write("<script type='text/javascript'>alert('Test')</script>")'
            'Response.Write("<script>windows.location.reload()</script>")'
End Sub

Eu tentei:

Passando variáveis do servidor para o cliente via inline <% =%> no bloco javascript da tag head.

Colocando o mesmo código em um script
dentro do updatePanel.

Tentou usar
RegisterClientScriptBlock e
RegisterStartUpScript

Basta fazer um Response.Write com a tag de script escrita nele.

Tentei várias combinações de colocar todo o código jquery.dialog no script registerstartup, ou apenas
tentando alterar o autoOpen
propriedade ou apenas chamando "aberto" em
isto.

Eu não consigo nem receber um alerta simples para trabalhar com qualquer um desses, então estou fazendo algo errado, mas simplesmente não sei o que é.

Aqui está o que eu sei:

O Jquery está vinculando corretamente, mesmo em postbacks assíncronos, porque o contêiner div que é a caixa de diálogo é sempre invisível, eu vi um post semelhante aqui afirmando que estava causando um problema, esse não é o caso aqui.

Usando page_load em vez de
document.ready, já que isso deve ser executado em assíncrono e normal
postbacks, então esse não é o problema.

O painel de atualização está sendo atualizado corretamente porque<p>Did register Pass? <%= registrationComplete %></p> atualizações para true após o envio do formulário.

Então, como posso fazer isso funcionar? Tudo o que eu quero é -> clique no botão enviar dentro de um painel de atualização -> execute o código do servidor para validar o formulário e insira no db -> se tudo der certo, a caixa de diálogo jquery (modal) aparecerá dizendo ei que funcionou.

questionAnswers(2)

yourAnswerToTheQuestion