• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

skcratch

[Ajuda] - Inserir mediante "estado" CustomValidator

2 mensagens neste tópico

Viva!

Estou a utilizar uma FormView para inserir um registo na base de dados. Todos os campos são verificados através dos controlos de validação considerados mais adequados. No entanto, o CustomValidator utilizado não está a funcionar como pretendido; quando um ficheiro escolhido falha a validação, as mensagens de erro adequadas são mostradas mas a inserção também é realizada, não sendo "bloqueada" como acontece nos restantes controlos.

Junto apresento o contexto de utilização do controlo.

protected void validarFicheiroEnquadramento(object sender, ServerValidateEventArgs args)
    {
        // obter o controlo que se pretende validar
        FileUpload fuEnquadramento = (FileUpload)fvInserirPlanoDiscussao.FindControl("fuEnquadramento");

        // obter o CustomValidator
        CustomValidator cvFicheiroEnquadramento = sender as CustomValidator;

        // verificar se foi seleccionado algum ficheiro
        if (fuEnquadramento.HasFile)
        {
            // verificar a extensão do ficheiro
            if ((!fuEnquadramento.FileName.EndsWith(".pdf")) && (!fuEnquadramento.FileName.EndsWith(".PDF")))
            {
                cvFicheiroEnquadramento.ErrorMessage = "Por favor, escolha um ficheiro do tipo PDF";
                args.IsValid = false;
                return;
            }

            // verificar o tamanho do ficheiro
            if (fuEnquadramento.PostedFile.ContentLength > tamanhoMaxFicheiro)
            {
                cvFicheiroEnquadramento.ErrorMessage = "Por favor, escolha um ficheiro com tamanho inferior a 10 MegaBytes";
                args.IsValid = false;
                return;
            }
        }
       
        // o controlo foi validade com sucesso
        args.IsValid = true;
    }

</InsertItemTemplate>
...
  <asp:FileUpload ID="fuEnquadramento" runat="server" />
                    <asp:CustomValidator ID="cvFicheiroEnquadramento" runat="server" ControlToValidate="fuEnquadramento"
                        OnServerValidate="validarFicheiroEnquadramento">
                    </asp:CustomValidator>
                    <br />
                    <br />
                    <asp:LinkButton ID="lbInserirPlano" runat="server" CausesValidation="True" CommandName="Inserir"
                        Text="Inserir" OnCommand="lbInserirPlano_Command">
                    </asp:LinkButton>
                    <asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
                        Text="Cancelar">
                    </asp:LinkButton><br />
                    <br />
                    <asp:Label ID="lblMensagens" runat="server"></asp:Label>
                </InsertItemTemplate>

Grato desde já pela ajuda,

Cumps!

B)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva!

Ninguém tem ideia de que forma se pode resolver o problema?

Cumps!

:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora