Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
CustomValidator
giovedì 20 dicembre 2012 - 19.15
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 1.1
zizu75
Profilo
| Newbie
23
messaggi | Data Invio:
gio 20 dic 2012 - 19:15
principiante disperato . Ho creato un una webForm con un controllo customValidator, nella pagina html ho inserito un piccolo script con JScript per la digitazione in una textbox di numeri pari,ora impostate tutte le proprietà ControlToValidate,ClientValidationFunction e ErrorMessage non funziona ,infatti se digito un numero dispari non succede nulla ,però se utilizzo lo stesso codice con visual studio 2005 tutto va per il meglio e il controllo funziona .Quando carico la pagina con IE ,sulla barra in basso esce un triangolino giallo con un punto interrogativo,clicco sopra e esce la seguente schermata
Messaggio: Errore di sintassi
Linea: 35
Carattere: 1
Codice: 0
URI: http://localhost/PrimoWebForm/ControlloValidazione.aspx
Messaggio: Previsto oggetto
WebUIValidation.js Linea: 298
Codice: 0 Carattere: 9
URI: http://localhost/aspnet_client/system_web/1_1_4322/WebUIValidation.js
Sapete dirmi il perché?
P.S. Utilizzo visual studio 2003 con visual basic.net ,il browser Internet Explorer o Google Crome,
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
ven 21 dic 2012 - 09:05
puoi postare i codice della pagina in questione?
CIAO
Riccardo D'Aria
zizu75
Profilo
| Newbie
23
messaggi | Data Invio:
ven 21 dic 2012 - 18:20
il codice vb.net è il seguente
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
#Const EMBED_CUSTOM_FUNCTION_IN_HTML = True
#If EMBED_CUSTOM_FUNCTION_IN_HTML = False Then
literal1.Text ="<script language=""Jscript""><!- " & controlchars.CrLf _
& "function CheckEvenNumber(source, args) {"& controlchars.CrLf _
& " var theNumber = args.Value;" & controlchars.CrLf _
& " if (theNumber % 2 == 0) " & controlchars.CrLf _
& " args.IsValid = true;" & controlchars.CrLf _
& " else " & controlchars.CrLf _
& " args.IsValid = false;" & controlchars.CrLf _
& "} " & controlchars.CrLf _
& "//->" controlchars.CrLf _
& "</script>" & controlchars.CrLf
#End If
If txtNome.Attributes("InitialValue") = "" Then
If txtNome.Text.Length > 0 Then
txtNome.Attributes.Add("InitialValue", txtNome.Text)
End If
End If
End Sub
Private Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
Dim num As Integer = CInt(args.Value)
If (num Mod 2) = 0 Then
args.IsValid = True
Else
args.IsValid = False
End If
End Sub
mentre l html è il seguente
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="ControlloValidazione.aspx.vb" Inherits="PrimoWebForm.ControlloValidazione"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>ControlloValidazione</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="
http://schemas.microsoft.com/intellisense/ie3-2nav3-0">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<H1>Dimostrazione controlli validazione</H1>
<p>Questa pagina dimostra le caratteristiche di tutti e 5 i controlli di
validazione e di ValidationSummary</p>
<p><asp:validationsummary id="ValidationSummary1" runat="server" Width="576px" Height="80px" HeaderText="Per favore corregga gli errori mostrati qui di seguito."
EnableViewState="False" ShowMessageBox="True"></asp:validationsummary></p>
<p><asp:label id="Label1" runat="server" Width="128px" ForeColor="#0000C0">Nome(Richiesto)</asp:label><asp:textbox id="txtNome" runat="server" style="Z-INDEX: 0"></asp:textbox><asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator"
ControlToValidate="txtNome" style="Z-INDEX: 0">Il nome è richiesto!</asp:requiredfieldvalidator></p>
<p><asp:label id="Label2" runat="server" Width="128px" ForeColor="#0000C0">Anno di nascita</asp:label><asp:textbox style="Z-INDEX: 0" id="txtAnnoNascita" runat="server"></asp:textbox><asp:rangevalidator id="RangeValidator1" runat="server" Width="32px" Height="8px" ErrorMessage="L'anno di nascita deve essere appartenere alla serie [1901-2012]"
ControlToValidate="txtAnnoNascita" MaximumValue="2012" MinimumValue="1901" Type="Integer">*</asp:rangevalidator><asp:label style="Z-INDEX: 0" id="Label3" runat="server" Width="240px" BackColor="White" ForeColor="#0000C0">Anno di matrimonio(>anno di nascita)</asp:label><asp:textbox id="txtAnnoMatrimonio" runat="server" Width="80px"></asp:textbox><asp:comparevalidator id="CompareValidator1" runat="server" Width="32px" ErrorMessage="L'anno del suo matrimonio deve essere superiore al suo anno di nascita"
ControlToValidate="txtAnnoMatrimonio" ControlToCompare="txtAnnoNascita" Operator="GreaterThan">*</asp:comparevalidator></p>
<p><asp:Label style="Z-INDEX: 0" id="Label4" runat="server" Width="128px" ForeColor="#0000C0">Data dell'ultima visita</asp:Label>
<asp:TextBox id="txtUltimaVisita" runat="server"></asp:TextBox>
<asp:CompareValidator id="CompareValidator2" runat="server" Width="24px" ErrorMessage="Data dell'ultima visita non valida"
ControlToValidate="txtUltimaVisita" Type="Date" Operator="DataTypeCheck">*</asp:CompareValidator>
<asp:Label id="Label5" runat="server" Width="248px" ForeColor="#0000C0" style="Z-INDEX: 0">Numero di figli(>=0)</asp:Label>
<asp:TextBox id="txtFigli" runat="server" Width="81px"></asp:TextBox>
<asp:CompareValidator id="CompareValidator3" runat="server" ErrorMessage="Il numero di figli deve essere >=0"
ControlToValidate="txtFigli" Type="Integer" Operator="GreaterThan" ValueToCompare="0">*</asp:CompareValidator></p>
<p><asp:Label id="Label6" runat="server" Width="128px" ForeColor="#0000C0">Numero di telefono</asp:Label>
<asp:TextBox id="txtNumTel" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator style="Z-INDEX: 0" id="RegularExpressionValidator1" runat="server" ErrorMessage="Il numero di telefono deve essere nel seguente formato (###)###-####"
ControlToValidate="txtNumTel" ValidationExpression="((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}">*</asp:RegularExpressionValidator></p>
<script language="JavaScript"><!-
function DigitaNumeroPari (source, args){
var theNumber = args.Value;
if (theNumber % 2 ==0)
args.isvalid = true;
else
args.isvalid = false;
}
//->
</script>
<p>
<asp:Label id="Label7" runat="server" Width="128px" ForeColor="#0000C0">Ins.numero pari</asp:Label>
<asp:TextBox id="txtNumPari" runat="server"></asp:TextBox>
<asp:CustomValidator id="CustomValidator1" runat="server" Width="16px" ErrorMessage="Digiti un numero pari"
ControlToValidate="txtNumPari" ClientValidationFunction="DigitaNumeroPari">*</asp:CustomValidator>
<asp:Literal id="Literal1" runat="server"></asp:Literal></p>
<p>
<asp:Button id="Button1" runat="server" Text="Invia"></asp:Button></p>
<p>
<asp:Label id="lblStato" runat="server" style="Z-INDEX: 0" Width="112px" ForeColor="Magenta"></asp:Label></p>
</form>
</body>
</HTML>
se le servono altre informazioni mi faccia sapere .
p.s. non può essere che ci sia qualche problema tra visualstudio 2003 e internet explorer 8
le iinvio pure l'html de4lla pagina di risposta
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>ControlloValidazione</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="
http://schemas.microsoft.com/intellisense/ie3-2nav3-0">
</HEAD>
<body>
<form name="Form1" method="post" action="ControlloValidazione.aspx" language="javascript" onsubmit="if (!ValidatorOnSubmit()) return false;" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwyNzYzNzk5MjM7Oz5JfYgjR3obU1Jc99M/DQVRrkbbaw==" />
<script language="javascript" type="text/javascript" src="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script>
<H1>Dimostrazione controlli validazione</H1>
<p>Questa pagina dimostra le caratteristiche di tutti e 5 i controlli di
validazione e di ValidationSummary</p>
<p><div id="ValidationSummary1" headertext="Per favore corregga gli errori mostrati qui di seguito." showmessagebox="True" style="color:Red;height:80px;width:576px;display:none;">
</div></p>
<p><span id="Label1" style="color:#0000C0;width:128px;">Nome(Richiesto)</span><input name="txtNome" type="text" id="txtNome" style="Z-INDEX: 0" /><span id="RequiredFieldValidator1" controltovalidate="txtNome" errormessage="RequiredFieldValidator" evaluationfunction="RequiredFieldValidatorEvaluateIsValid" initialvalue="" style="color:Red;Z-INDEX:0;visibility:hidden;">Il nome è richiesto!</span></p>
<p><span id="Label2" style="color:#0000C0;width:128px;">Anno di nascita</span><input name="txtAnnoNascita" type="text" id="txtAnnoNascita" style="Z-INDEX: 0" /><span id="RangeValidator1" controltovalidate="txtAnnoNascita" errormessage="L'anno di nascita deve essere appartenere alla serie [1901-2012]" type="Integer" evaluationfunction="RangeValidatorEvaluateIsValid" maximumvalue="2012" minimumvalue="1901" style="color:Red;height:8px;width:32px;visibility:hidden;">*</span><span id="Label3" style="color:#0000C0;background-color:White;width:240px;Z-INDEX: 0">Anno di matrimonio(>anno di nascita)</span><input name="txtAnnoMatrimonio" type="text" id="txtAnnoMatrimonio" style="width:80px;" /><span id="CompareValidator1" controltovalidate="txtAnnoMatrimonio" errormessage="L'anno del suo matrimonio deve essere superiore al suo anno di nascita" evaluationfunction="CompareValidatorEvaluateIsValid" controltocompare="txtAnnoNascita" controlhookup="txtAnnoNascita" operator="GreaterThan" style="color:Red;width:32px;visibility:hidden;">*</span></p>
<p><span id="Label4" style="color:#0000C0;width:128px;Z-INDEX: 0">Data dell'ultima visita</span>
<input name="txtUltimaVisita" type="text" id="txtUltimaVisita" />
<span id="CompareValidator2" controltovalidate="txtUltimaVisita" errormessage="Data dell'ultima visita non valida" type="Date" dateorder="dmy" cutoffyear="2029" century="2000" evaluationfunction="CompareValidatorEvaluateIsValid" operator="DataTypeCheck" style="color:Red;width:24px;visibility:hidden;">*</span>
<span id="Label5" style="color:#0000C0;width:248px;Z-INDEX: 0">Numero di figli(>=0)</span>
<input name="txtFigli" type="text" id="txtFigli" style="width:81px;" />
<span id="CompareValidator3" controltovalidate="txtFigli" errormessage="Il numero di figli deve essere >=0" type="Integer" evaluationfunction="CompareValidatorEvaluateIsValid" valuetocompare="0" operator="GreaterThan" style="color:Red;visibility:hidden;">*</span></p>
<p><span id="Label6" style="color:#0000C0;width:128px;">Numero di telefono</span>
<input name="txtNumTel" type="text" id="txtNumTel" />
<span id="RegularExpressionValidator1" controltovalidate="txtNumTel" errormessage="Il numero di telefono deve essere nel seguente formato (###)###-####" evaluationfunction="RegularExpressionValidatorEvaluateIsValid" validationexpression="((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}" style="color:Red;Z-INDEX:0;visibility:hidden;">*</span></p>
<script language="JavaScript"><!-
function DigitaNumeroPari (source, args){
var theNumber = args.Value;
if (theNumber % 2 ==0)
args.isvalid = true;
else
args.isvalid = false;
}
//->
</script>
<p>
<span id="Label7" style="color:#0000C0;width:128px;">Ins.numero pari</span>
<input name="txtNumPari" type="text" id="txtNumPari" />
<span id="CustomValidator1" controltovalidate="txtNumPari" errormessage="Digiti un numero pari" evaluationfunction="CustomValidatorEvaluateIsValid" clientvalidationfunction="DigitaNumeroPari" style="color:Red;width:16px;visibility:hidden;">*</span>
</p>
<p>
<input type="submit" name="Button1" value="Invia" onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " language="javascript" id="Button1" /></p>
<p>
<span id="lblStato" style="color:Magenta;width:112px;Z-INDEX: 0"></span></p>
<script language="javascript" type="text/javascript">
<!--
var Page_ValidationSummaries = new Array(document.all["ValidationSummary1"]);
var Page_Validators = new Array(document.all["RequiredFieldValidator1"], document.all["RangeValidator1"], document.all["CompareValidator1"], document.all["CompareValidator2"], document.all["CompareValidator3"], document.all["RegularExpressionValidator1"], document.all["CustomValidator1"]);
// -->
</script>
<script language="javascript" type="text/javascript">
<!--
var Page_ValidationActive = false;
if (typeof(clientInformation) != "undefined" && clientInformation.appName.indexOf("Explorer") != -1) {
if (typeof(Page_ValidationVer) == "undefined")
alert("Impossibile trovare la libreria di script '/aspnet_client/system_web/1_1_4322/WebUIValidation.js'. Provare a inserire il file manualmente oppure reinstallarlo eseguendo 'aspnet_regiis -c'.");
else if (Page_ValidationVer != "125")
alert("Questa pagina utilizza una versione di WebUIValidation.js non corretta. La versione prevista è 125. La libreria di script è " + Page_ValidationVer + ".");
else
ValidatorOnLoad();
}
function ValidatorOnSubmit() {
if (Page_ValidationActive) {
return ValidatorCommonOnSubmit();
}
return true;
}
// -->
</script>
</form>
</body>
</HTML>
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
ven 21 dic 2012 - 19:48
perdonami ......
me per un custom Validator server side, bastano veramente una decina di righe di codice tra HTML e vb,
Googla un pò Custom Validator e troverai degli esempi molto più semplici di questo.
CIAO
Riccardo D'Aria
zizu75
Profilo
| Newbie
23
messaggi | Data Invio:
sab 22 dic 2012 - 02:27
ti ho inviato tutto il codice della pagina.mi scuso
zizu75
Profilo
| Newbie
23
messaggi | Data Invio:
sab 22 dic 2012 - 02:30
mi devi scusare ma ti ho postato tutto il codice del webform ,dove ci sono altri controlli pensando che ti
servisse pet capire il problema .il customvalidator e'solo uno dei controlli utilizzati ed e'collegato alla funzione javascript digitanumpari,come puoi vedere dall html che ti ho inviato e come puoi vedere mi interessa sopratutto usarlo come controllo client e non come controllo server
.il codice html che ho utilizzato è il seguente
<script language="JavaScript"><!-
function DigitaNumeroPari (source, args){
var theNumber = args.Value;
if (theNumber % 2 ==0)
args.isvalid = true;
else
args.isvalid = false;
}
//->
</script>
<p>
<asp:Label id="Label7" runat="server" Width="128px" ForeColor="#0000C0">Ins.numero pari</asp:Label>
<asp:TextBox id="txtNumPari" runat="server"></asp:TextBox>
<asp:CustomValidator id="CustomValidator1" runat="server" Width="16px" ErrorMessage="Digiti un numero pari"
ControlToValidate="txtNumPari" ClientValidationFunction="DigitaNumeroPari">*</asp:CustomValidator>
il codice vb invece è
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
#Const EMBED_CUSTOM_FUNCTION_IN_HTML = True
#If EMBED_CUSTOM_FUNCTION_IN_HTML = False Then
literal1.Text ="<script language=""Jscript""><!- " & controlchars.CrLf _
& "function CheckEvenNumber(source, args) {"& controlchars.CrLf _
& " var theNumber = args.Value;" & controlchars.CrLf _
& " if (theNumber % 2 == 0) " & controlchars.CrLf _
& " args.IsValid = true;" & controlchars.CrLf _
& " else " & controlchars.CrLf _
& " args.IsValid = false;" & controlchars.CrLf _
& "} " & controlchars.CrLf _
& "//->" controlchars.CrLf _
& "</script>" & controlchars.CrLf
#End If
If txtNome.Attributes("InitialValue") = "" Then
If txtNome.Text.Length > 0 Then
txtNome.Attributes.Add("InitialValue", txtNome.Text)
End If
End If
End Sub
Private Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
Dim num As Integer = CInt(args.Value)
If (num Mod 2) = 0 Then
args.IsValid = True
Else
args.IsValid = False
End If
End Sub
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
gio 27 dic 2012 - 12:21
............ è una questione di sintassi: isvalid non va scritto così, ma così: IsValid
Di seguito la funzione Corretta, ciao.
function DigitaNumeroPari (source, args)
{
var theNumber = args.Value;
if ( theNumber %2 == 0)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}
ps se tutto OK chiudi il post cliccando su accetta.
CIAO
Riccardo D'Aria
zizu75
Profilo
| Newbie
23
messaggi | Data Invio:
gio 27 dic 2012 - 18:27
salve,ho risolto era solo un problema di collocazione , lo script doveva essere inserito con il menù contestuale di visuali studio 2003,che lo inserisce sul margine sinistro della pagina html.Comunque grazie lo stesso spero che mi potrai aiutare in futuro
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !