Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: validare data

  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    validare data

    in un textbox devo inserire una data. Vorrei validare così:
    deve essere una data e deve essere >= della data odierna, inoltre non può essere vuoto :master:

    Qualcuno può aiutarmi?
    Pietro

  2. #2
    Perché il campo non sia vuoto è sufficiente in requiredFieldValidator, per controllare che sia data è sufficiente un compareValidator:
    codice:
    <asp:CompareValidator ID="CompareValidator1" Runat="server" ErrorMessage="Dev'essere una data!"
                ControlToValidate="TextBox1" Operator="DataTypeCheck" Type="Date">
                *</asp:CompareValidator>
    Perché essa sia maggiore di quella attuale:
    codice:
    <asp:RangeValidator ID="RangeValidator1" Runat="server" ErrorMessage="Maggiore di oggi!"
                ControlToValidate="TextBox1" Type="Date">*
            </asp:RangeValidator>
    Quindi nel Page_Load:
    codice:
    RangeValidator1.MinimumValue = DateTime.Now.ToShortDateString();
    RangeValidator1.MaximumValue = "31/12/2060";
    Se il 2060 è troppo poco puoi sempre aumentare...

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da AndreaZani
    Perché il campo non sia vuoto è sufficiente in requiredFieldValidator, per controllare che sia data è sufficiente un compareValidator:
    codice:
    <asp:CompareValidator ID="CompareValidator1" Runat="server" ErrorMessage="Dev'essere una data!"
                ControlToValidate="TextBox1" Operator="DataTypeCheck" Type="Date">
                *</asp:CompareValidator>
    Perché essa sia maggiore di quella attuale:
    codice:
    <asp:RangeValidator ID="RangeValidator1" Runat="server" ErrorMessage="Maggiore di oggi!"
                ControlToValidate="TextBox1" Type="Date">*
            </asp:RangeValidator>
    Quindi nel Page_Load:
    codice:
    RangeValidator1.MinimumValue = DateTime.Now.ToShortDateString();
    RangeValidator1.MaximumValue = "31/12/2060";
    Se il 2060 è troppo poco puoi sempre aumentare...

    Ciao
    Non sgongolare perchè non funziona :rollo: :maLOL:

    Se inserisci per esempio nel textbox, 15/3/99, viene considarata una data valida, ma non inferiore al 24/12/2004. Ti risulta che sia giusto?

    Ho risolto in javascript

    ciao
    Pietro

  4. #4
    questa è per validare una data:

    asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ControlToValidate="txtData" Display="Dynamic"
    ErrorMessage="Inserire la data nel formato gg/mm/yyyy" ValidationExpression="^(??:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(??:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(??:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(???:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(??:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(??:0?[1-9])|(?:1[0-2]))\4(??:1[6-9]|[2-9]\d)?\d{2})$"></asp:RegularExpressionValidator>

    per il tuo problema metti un textbox nascosto con la data odierna caricata a runtime. Poi inserisci una regular di tipo COMPARE e per non essere vuota metti il requestvalidator

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    Originariamente inviato da Daniele80
    questa è per validare una data:

    asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ControlToValidate="txtData" Display="Dynamic"
    ErrorMessage="Inserire la data nel formato gg/mm/yyyy" ValidationExpression="^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$"></asp:RegularExpressionValidator>

    per il tuo problema metti un textbox nascosto con la data odierna caricata a runtime. Poi inserisci una regular di tipo COMPARE e per non essere vuota metti il requestvalidator
    te lo quoto disabilitando le faccine altrimenti non si capisce

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Che mattinieri
    Vi ringrazio
    Pietro

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Una domanda ad AndreaZani (e a chiunque sappia).

    Vorrei passare da windows2000 ad Xp professional. Però non mi funziona Interdev con Vss. Avete qualche notizia o link su questo problema? :master:

    Pietro

  8. #8
    Originariamente inviato da pietro09
    Non sgongolare perchè non funziona :rollo: :maLOL:
    Butta il tuo server, funziona perfettamente!

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da AndreaZani
    Butta il tuo server, funziona perfettamente!

    Ciao
    Ma, perchè dovrei buttare il mio server, dato che, come dici, funziona perfettamente

    Ho fatto questa paginetta, seguendo i tuoi consigli.
    codice:
    <%@ Page language="c#" Codebehind="WebForm3.aspx.cs" AutoEventWireup="false" Inherits="prova_web_c_charp.WebForm3" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    	<HEAD>
    		<title>WebForm3</title>
    		<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    		<meta name="CODE_LANGUAGE" Content="C#">
    		<meta name="vs_defaultClientScript" content="JavaScript">
    		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    		<LINK href="Styles.css" type="text/css" rel="stylesheet">
    	</HEAD>
    	<body MS_POSITIONING="FlowLayout">
    		<form id="Form1" method="post" runat="server">
    			
    
    
    				<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
    				<asp:Button id="Button1" runat="server" Text="Button"></asp:Button></P>
    			
    
    
    				<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="Il campo è obbligatorio"
    					ControlToValidate="TextBox1"></asp:RequiredFieldValidator></P>
    			
    
    
    				<asp:CompareValidator id="CompareValidator1" runat="server" ErrorMessage="La data non è valida" ControlToValidate="TextBox1"
    					Operator="DataTypeCheck" Type="Date"></asp:CompareValidator></P>
    			
    
    
    				<asp:RangeValidator id="RangeValidator1" runat="server" ErrorMessage="La data non può essere antecedente alla data odierna"
    					ControlToValidate="TextBox1" Type="Date" MaximumValue="31/12/3000" MinimumValue="25/12/2004"></asp:RangeValidator></P>
    		</form>
    	</body>
    </HTML>
    Ebbene, se metto 1/1/99, non viene intercettato nessun errore, invece, se metto 1/1/1999, riconosce che 1/1/1999 è < di 25/12/2004

    Adesso, concesso e non ammesso, che in un server messo in azoto liquido (dalle tue parti, credo ) funzioni :master: la cosa non mi convince. Da quando in qua javascript è temperatura-dipendente?

    Ciao
    Pietro

  10. #10
    Testata anche ora (bel modo di passare il Natale! ) e funziona. Ti riporto qui sotto il codice utile:
    codice:
    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    
    <script runat="server">
    
        void Page_Load()
        {
            RangeValidator1.MinimumValue = DateTime.Now.ToShortDateString();
            RangeValidator1.MaximumValue = "31/12/2060";
        }
        void Button1_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                Label1.Text = TextBox1.Text;
            }
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" Runat="server">21/12/2004</asp:TextBox>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" Runat="server" ErrorMessage="Inserisci la data"
                ControlToValidate="TextBox1">
                *</asp:RequiredFieldValidator>
            <asp:CompareValidator ID="CompareValidator1" Runat="server" ErrorMessage="Dev'essere una data!"
                ControlToValidate="TextBox1" Operator="DataTypeCheck" Type="Date">
                *</asp:CompareValidator>
            <asp:RangeValidator ID="RangeValidator1" Runat="server" ErrorMessage="RangeValidator"
                ControlToValidate="TextBox1" Type="Date">
            </asp:RangeValidator>
            
    
            <asp:Button ID="Button1" Runat="server" Text="Controlla" OnClick="Button1_Click" />
    
            <asp:Label ID="Label1" Runat="server"></asp:Label>
            <asp:ValidationSummary ID="ValidationSummary1" Runat="server" ShowMessageBox="True"
                ShowSummary="False" />    
        </div>
        </form>
    </body>
    </html>
    Mi hai fatto venire il dubbio sulla temperatua... che per il freddo il mio server beva qualcosa di alcolico di troppo?

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.