none
[WSP] Como faço para validar um <SharePoint:InputFormTextBox> com <asp:RequiredFieldValidator>? RRS feed

  • Pergunta

  • Olá,

    Trabalho com sharepoint 2010 e estou desenvolvendo uma WSP de cadastro de itens para uma lista.

    Tenho um <SharePoint:InputFormTextBox> e preciso valida-lo junto dos outros campos na minha WSP com um RequiredFieldValidator ou algum validador do .Net.

    Já vi alguns links na internet sobre, mas ainda não consegui acertar.

    Alguém já o fez?

    Obrigado


    K2rto'4 - Analista Sharepoint
    "Hoje melhor do que ontem, amanhã melhor do que hoje!" 改 善

    sexta-feira, 18 de julho de 2014 20:47

Respostas

  • Olá,

    Consegui em parte resolver o problema. Funciona, mas não era bem o que eu queria.

    Para resolver o problema utilizei um <asp:CustomValidator />.

    O que fiz foi validar o conteúdo do meu campo Rich text no click do botão salvar. Fiz isto porque o próprio controle do CustomValidator não funciona bem. Ele até aviso o erro (falta de preenchimento), mas deixa o código do botão ser ativado.

    Seguem abaixo os códigos:

    Campo Rich Text

    <SharePoint:InputFormTextBox ID="txtrbConteudo"  RichText="true" RichTextMode="FullHtml" runat="server" TextMode="MultiLine" Rows="20" Width="550px"  IsValid="True" AllowHyperlink="true"  ValidationGroup="CreateCase">  </SharePoint:InputFormTextBox>

    Custom Validator

    <asp:CustomValidator ID="cvtxtrbConteudo" runat="server"  ErrorMessage="*" ControlToValidate="txtrbConteudo"  onservervalidate="cvtxtrbConteudo_ServerValidate">  </asp:CustomValidator>

    Custom Validator.cs

            protected void cvtxtrbConteudo_ServerValidate(object source, ServerValidateEventArgs args)
            {
                if (args.Value == string.Empty || args.Value == "<DIV></DIV>")
                    args.IsValid = false;
                else
                    args.IsValid = true;
            }

    Botão Salvar.cs

    protected void btnSalvar_Click(object sender, EventArgs e)
            {
                if (txtrbConteudo.Text == string.Empty || txtrbConteudo.Text == "<DIV></DIV>")
                    cvtxtrbConteudo.IsValid = false;
                else
                {
                    //Salvo o meu item
                }
            }

    Isto funciona, mas ainda não está como eu queria.

    Todos os outros campos com  <asp:RequiredFieldValidator/> são ativados ao mesmo tempo quando se aperta o botão salvar, mas o controle <asp:CustomValidator/> não é ativado assim. Ele apenas é ativado quando mais nenhum item está sem preenchimento.

    Se alguém souber de uma forma melhor de fazer esta validação para um campo <SharePoint:InputFormTextBox/>, fique a vontade para comentar.

    Valeuuuu


    K2rto'4 - Analista Sharepoint
    "Hoje melhor do que ontem, amanhã melhor do que hoje!" 改 善




    • Marcado como Resposta TI DEV segunda-feira, 21 de julho de 2014 19:43
    • Editado TI DEV segunda-feira, 21 de julho de 2014 19:47
    segunda-feira, 21 de julho de 2014 19:43

Todas as Respostas

  • Olá,

    Consegui em parte resolver o problema. Funciona, mas não era bem o que eu queria.

    Para resolver o problema utilizei um <asp:CustomValidator />.

    O que fiz foi validar o conteúdo do meu campo Rich text no click do botão salvar. Fiz isto porque o próprio controle do CustomValidator não funciona bem. Ele até aviso o erro (falta de preenchimento), mas deixa o código do botão ser ativado.

    Seguem abaixo os códigos:

    Campo Rich Text

    <SharePoint:InputFormTextBox ID="txtrbConteudo"  RichText="true" RichTextMode="FullHtml" runat="server" TextMode="MultiLine" Rows="20" Width="550px"  IsValid="True" AllowHyperlink="true"  ValidationGroup="CreateCase">  </SharePoint:InputFormTextBox>

    Custom Validator

    <asp:CustomValidator ID="cvtxtrbConteudo" runat="server"  ErrorMessage="*" ControlToValidate="txtrbConteudo"  onservervalidate="cvtxtrbConteudo_ServerValidate">  </asp:CustomValidator>

    Custom Validator.cs

            protected void cvtxtrbConteudo_ServerValidate(object source, ServerValidateEventArgs args)
            {
                if (args.Value == string.Empty || args.Value == "<DIV></DIV>")
                    args.IsValid = false;
                else
                    args.IsValid = true;
            }

    Botão Salvar.cs

    protected void btnSalvar_Click(object sender, EventArgs e)
            {
                if (txtrbConteudo.Text == string.Empty || txtrbConteudo.Text == "<DIV></DIV>")
                    cvtxtrbConteudo.IsValid = false;
                else
                {
                    //Salvo o meu item
                }
            }

    Isto funciona, mas ainda não está como eu queria.

    Todos os outros campos com  <asp:RequiredFieldValidator/> são ativados ao mesmo tempo quando se aperta o botão salvar, mas o controle <asp:CustomValidator/> não é ativado assim. Ele apenas é ativado quando mais nenhum item está sem preenchimento.

    Se alguém souber de uma forma melhor de fazer esta validação para um campo <SharePoint:InputFormTextBox/>, fique a vontade para comentar.

    Valeuuuu


    K2rto'4 - Analista Sharepoint
    "Hoje melhor do que ontem, amanhã melhor do que hoje!" 改 善




    • Marcado como Resposta TI DEV segunda-feira, 21 de julho de 2014 19:43
    • Editado TI DEV segunda-feira, 21 de julho de 2014 19:47
    segunda-feira, 21 de julho de 2014 19:43
  • sexta-feira, 25 de julho de 2014 13:39
    Moderador