Newsgroup: it.comp.www.asp
Titolo: [ASP.NET] Convalida lato server (Lunghetto)

Salve a tutti.
Da qualche gg sto cercando di imparare un po' di 
asp.net
 con l'ausilio di un
buon (non ottimo purtroppo)
libro (
asp.net
 guida completa di Chris Payne edito da Apogeo)
Sono impiantato al capitolo della validazione lato server.
Le prove sono fatte con:  framework 1.1 su un win2000 pro sp3 e IE 6 e il
buon notepad
vi posto una parte di codice di prova e poi vi indico il mio dilemma.
<html>
<head>
  <script runat="server">
    Sub ButtonClick(sender As Object, e As EventArgs)
    If Page.IsValid Then
      Label1.Text="Risultato convalida: OK :-D"
    Else
      Label1.Text="Risultato convalida: KO :-("
    End If
    End Sub
  </script>
</head>
<body>
  <form runat="server">
    <h3>RangeValidator</h3>
    Inserisci un numero tra 1 e 30:
    <asp:TextBox id="TextBox1" runat="server"/>
    <asp:RequiredFieldValidator id="RequiredFieldValidator1"
      ControlToValidate="TextBox1"
      Text="il campo non può essere vuoto!"
      Display="Dynamic"
      runat="server"/>
      <asp:RangeValidator id="Range1"
      ControlToValidate="TextBox1"
      MinimumValue="1"
      MaximumValue="30"
      Type="Integer"
      Text="Devi inserire un numero compreso tra 1 e 30"
      Display="Dynamic"
      runat="server"/>
    <br><br>
    <asp:Label id="Label1" runat="server"/>
      <br><br>
    <asp:Button id="Button1"
      Text="Convalida"
      OnClick="ButtonClick"
      runat="server"/>
  </form>
</body>
</html>
Il dilemma: Cosi com'è se le convalide falliscono io dovrei vedere
visualizzato
(oltre agli errori rossi di convalida) il msg:
Risultato convalida: KO :-(
Invece No! vedo (dopo il primo invio di form), gli errori di convalida
dinamici
ma NON il testo inserito nella sub.
Anzi la sub proprio non viene eseguita! il controllo page.isvalid non viene
neppure richiamato
Cioè viene eseguita solo se passano le convalide ma a questo punto vedo il
msg:
Risultato convalida: OK :-D
E' giusto? Da quello che finora ho capito io no, ma non capisco l'errore.
Per avere cmq il messaggio finale positivo o negativo devo inserire il
parametro
EnableClientScript="false" su ogni controllo
ma così facendo perdo il controllo client-side del form e la sua
dinamicità.....
Mi correggete se sbaglio???
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Paolo


--
..A
UGIdotNET - User Group Italiano .NET
http://www.ugidotnet.org

 Mi correggete se sbaglio???
Il comportamento è corretto. L'
ASP.NET
 inserisce del codice Js per validare
i dati che hai inserito nel form in modo da evitare postback al server e
migliorare le prestazioni. Naturalmente, anche quando il codice Js avrà
convalidato i dati, verranno ricontrollati con codice server-side (if
page.IsValid).
Se vuoi visualizzare un messaggio riassuntivo, o un messaggio di errore
generico di inserimento, inserisci nella pagina il "ValidatorSummary". Esso
ti permette di riassumere i messaggi di errore dei validatori con alcune
aggiunte come la visualizzazione di alert.
Ciao
--
AZ [Microsoft .NET MVP]

 Tutto qui :-)
Allora avevo capito io ma allora un esempio del libro cosě riportato č
sbagliato:
l'evento click non viene neppure eseguito se le convalide falliscono.
Allora un page.isvalid mi serve + che altro se EnableClientScript="false"
???
O mi sfugge qualcosa d'altro?
Paolo