Usuário com melhor resposta
[WSP] Como faço para validar um <SharePoint:InputFormTextBox> com <asp:RequiredFieldValidator>?

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!" 改 善
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!" 改 善
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!" 改 善
-
Olá K2rto,
Você pode usar uma das abordagens abaixo:
http://karinebosch.wordpress.com/sharepoint-controls/sharepoint-validation-controls/
Rodrigo A. Romano - SharePoint Server MVP - http://rodrigoromano.net