92 messaggi dal 11 aprile 2007
Salve a tutti,vi risulta ci siano dei problemi anche in .net 2.0 per i CompareValidator tra due dati tipo double?
Il problema è verificare che il valore inserito dall'utente nela textbox, ex: 12.50 sia minore del valore 'Decimal' preso da database ad esempio: 15,0000000000
Per convenzione, l'utente puo' inserire solamente il '.' come separatore decimale.
il fatto stà che per il validator, il valore 12.50 non risulta minore di 15,00000000

Grazie a Tutti
Andrea
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Se il separatore dei decimali è la virgola, il validator crede che quel numero sia 12500

Ciao
.
3.939 messaggi dal 28 gennaio 2003
Io ho lasciato stare le cose così, ossia ho imposto la virgola come separatore decimale.

Ma se volessi il punto farei così:

pagina aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="a.aspx.vb" Inherits="prove_a" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="Inserire un numero inferiore a 15"
            ControlToValidate="TextBox1" Operator="LessThan" Type="Double" ValueToCompare="15.0"></asp:CompareValidator>
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>
</body>
</html>


codice vb
Option Strict On
Imports l = libreria.ModuloWeb

Partial Class prove_a
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ImpostaCulturaItalianaDecimalePunto()
    End Sub

    '---------------------------------------------------------------------------------
    'imposta la cultura italiana col decimale punto per il Thread corrente
    '---------------------------------------------------------------------------------
    Public Sub ImpostaCulturaItalianaDecimalePunto()
        Dim ci As New CultureInfo("it-IT")
        ci.NumberFormat.NumberDecimalSeparator = "."

        System.Threading.Thread.CurrentThread.CurrentCulture = ci

    End Sub

End Class

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.