Como utilizar dois "Custom Validator" na mesma página? C#
Pessoal,
tenho uma WebForm com um Formview e preciso validar alguns campos utilizando o Custom Validator.
em um validador, vou fazer comparação se já existe determinado usuário cadastrado no banco de dados utilizando um textbox de nome completo e um textbox de apelido. não tenho campo de cpf. (esse validador já está funcionando).
porém, preciso fazer uma validação de data e hora inicial ser menor ou igual à data e hora final e consigo usar o validador sem problemas em uma outra página.
meu problema é que, agora, tenho uma única página em que tenho que fazer essas comparações.
queria usar dois Custom Validator nessa tela, mas não sei como usar.
tenho uma função javascript para o lado cliente:
function DataValidator_ClientValidate(source,
clientside_arguments) {
clientside_arguments.IsValid = false;
jQuery.ajax({
type: "POST",
async: false,
url: "detContato.aspx/IsDataValid",
data: "{Contato: '" + clientside_arguments.Value + "', ContatoCompleto: '" + $("[id*=tbxContatoCompleto]").val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
clientside_arguments.IsValid = msg.d;
},
error: function (msg) {
clientside_arguments.IsValid = false;
}
});
return clientside_arguments.IsValid;
além da função javascript, tenho o validator associado ao meu campo txbContato:
<asp:CustomValidator ID="DataValidator" runat="server" ClientValidationFunction="DataValidator_ClientValidate" ControlToValidate="tbxContato" Display="None" ErrorMessage="Esse Contato já existe!" meta:resourcekey="DataValidatorResource1" OnServerValidate="DataValidator_ServerValidate" SetFocusOnError="True" ValidationGroup="valgroup" />
<ajaxtoolkit:ValidatorCalloutExtender ID="DataValidatorE" runat="server" CloseImageUrl="~/Layout/Imagens/close_12x12.png" CssClass="customCalloutStyle" PopupPosition="BottomRight" TargetControlID="DataValidator" WarningIconImageUrl="~/Layout/Imagens/excl.png" />
e, no arquivo .cs tenho os métodos:
protected void btnGravar_Click(object sender, EventArgs e)
{
if (IsValid)
{
// bla bla bla
}
else
{
((CustomValidator)FormView1.FindControl("DataValidator")).IsValid = false;
}
}
public static bool IsDataValid(string Contato, string ContatoCompleto)
{
try
{
SqlConnection conex = DBUtils.CreateConnection();
SqlCommand cmd = new SqlCommand();
string cod = null;
int result = 0;
//Pega a QueryString no método do tipo static
NameValueCollection collection = GetQueryStringCollection(HttpContext.Current.Request.UrlReferrer.Query);
if (collection != null && collection.Count > 0)
{
cod = HttpContext.Current.Server.UrlDecode(collection["cod"]);
}
if (cod == "0")
{
result = Queries.selectValidaContato(Contato, ContatoCompleto);
}
else if (cod != "0")
{
result = Queries.selectValidaContato(Contato, ContatoCompleto, cod);
}
if (result == 0)
return true;
else
return false;
}
catch (Exception ex)
{
throw ex;
}
}
protected void DataValidator_ServerValidate(object sender, ServerValidateEventArgs e)
{
e.IsValid = IsDataValid(e.Value, ((TextBox)FormView1.FindControl("tbxContatoCompleto")).Text);
}
Não sei como utilizar os dois validadores na mesma página.
Já tentei alterar o nome dos métodos/funções, mas não funcionou como deveria.
Acredito que seja por causa do "IsValid", que não tenho nem ideia de como diferenciá-lo de acordo com o validador.
Não sei se fui muito claro em minha dúvida, mas é: basicamente como utlizar dois custom validator na mesma página?
Discussão (1)
Carregando comentários...