Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    problema form Maiuscole/minuscole

    Ciao a tutti,

    scusate la domanda forse banale... non me ne occupo in prima persona però vorrei capire se è possibile risolvere un problema che ho riscontrato nella gestione di un sito.

    Ho un form aspx i cui dati vanno a finire in un DB.

    Gli utenti che compilano, usano:

    - a volte "TUTTO MAIUSCOLO" (per es. PAOLO ROSSI)
    - a volte "tutto minuscolo" (per es. paolo rossi)

    e solo pochi il corretto "Maiuscolo Minuscolo" (per es. Paolo Rossi)

    c'è un modo per settare il form, o il testo che viene immesso in modo che risulti formattato correttamente "Maiuscolo Minuscolo"? E che tale "trasformazione" di lettera venga trasposta anche nel DB e non sia solo una visualizzazione?

    Grazie!!!!!!
    Silvia

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Se desideri fare il controllo nella pagina aspx devi rivolgerti al forum ASP.NET
    Altrimenti puoi farlo in javascrit.
    Ad ogni modo non risolvi il problema in assoluto. Non tutti i nomi e cognomi sono composti da due parole distinte: in alcuni casi le parole "del" "di" "d'" non necessariamente sono da intendersi con l'iniziale maiuscola e/o minuscola.

    Roby

  3. #3
    Per la visualizzazione inserisci nel tuo css
    codice:
    .formatname{
    	text-transform :capitalize;
    }
    e poi applichi la classe agli input text che ti interessano

    <input type="text" name="nome" id="nome" value="" class="formatname" />

    funziona se scrivono in minuscolo

    Se poi vuoi comunque effettuare la trasformazione per scriverla sul db guarda questa discussione
    http://forum.html.it/forum/showthrea...ighlight=ucase

    ciao

  4. #4
    la soluzione con i CSS la sapevo ma è appunto per la visualizzazione...
    a me servirebbe proprio una trasformazione delle lettere... soprattutto che agisca su DB.

    So che alcuni cognomi hanno una "Di" "de" etc. ma sono pochini e a quel punto si potrebbe correggerli a mano... mentre riscrivere tutte le voci su DB diventa una palla!!!

    ho visto la discussione che ha linkato OcchioCrepato... funziona anche se la pagina è aspx?
    forse fa al caso mio... altrimenti... sigh spostatemi su asp.net (come dicevo non è proprio il mio campo!!)

  5. #5
    Originariamente inviato da silvia.c
    ho visto la discussione che ha linkato OcchioCrepato... funziona anche se la pagina è aspx?
    forse fa al caso mio... altrimenti... sigh spostatemi su asp.net (come dicevo non è proprio il mio campo!!)
    basta adattarla.
    Prova comunque a chiedere nel forum aspx. anzi fatti spostare la discussione


  6. #6
    non esiste soluzione qualcosa senza i cicli for vero?

  7. #7
    prova con una cosa del genere


    sub Page_Load
    dim str as string = "nome COGNOME"
    dim arr as string() = str.Trim.Split( " " )
    dim outStr as string
    for i as integer = 0 to UBound( arr )
    outStr += arr( i ).Substring( 0,1 ).ToUpper() & arr( i ).Substring( 1,Len( arr( i ) ) - 1 ).ToLower() & " "
    next
    response.Write( outStr.Trim )
    end sub
    "...non è detto che sia tardi se non guardi che ora è..."

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    vedi se può andare
    codice:
        '------------------------------------------------------------------------
        'Data una stringa di parole le trasforma con la prima lettera maiuscolo
        '------------------------------------------------------------------------
        Public Function Capitalize(ByVal stringa As String) As String
            If stringa Is Nothing OrElse stringa = "" Then Return ""
    
            Dim cc As CultureInfo = CultureInfo.CurrentCulture
            'Return cc.TextInfo.ToTitleCase(cc.TextInfo.ToLower(stringa))
    
            'utilizzo la vecchia versione perchè non voglio maiuscole le parole
            'con una sola lettera
    
            'vecchia versione----------------------------------------
            If stringa Is Nothing OrElse stringa = "" Then Return ""
            Dim vs$() = stringa.Split(" "c)
            Dim i%
            For i = vs.GetLowerBound(0) To vs.GetUpperBound(0)
                stringa = vs(i)
                If stringa.Length = 0 Then
    
                ElseIf stringa.Length = 1 Then
                    stringa = stringa.ToLower
                Else
                    stringa = stringa.Substring(0, 1).ToUpper & stringa.Substring(1).ToLower
                End If
    
                vs(i) = stringa
            Next
            Return String.Join(" ", vs)
            'vecchia versione----------------------------------------
        End Function
    Pietro

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    mettiamocene un'altra:

    codice:
         Public Shared Function Capitalize(ByVal stringaDaCapitalizzare As String) As String
            Dim arrStr() As String = stringaDaCapitalizzare.Trim.Split(" ")
            Dim primoCarattere As Char
            Dim parteRimanenteStringa As String
    
            For indice As Integer = 0 To UBound(arrStr)
                If Char.IsLower(arrStr(indice).Chars(0)) And Len(arrStr(indice)) > 1 Then
                    primoCarattere = Char.ToUpper(arrStr(indice).Chars(0))
                    parteRimanenteStringa = Right(arrStr(indice), arrStr(indice).ToString.Length - 1)
                    arrStr(indice) = primoCarattere + parteRimanenteStringa
                End If
            Next
            Dim StringaCapitalizzata = String.Join(" ", arrStr)
            Return StringaCapitalizzata
        End Function
    cmq credo che la soluzione dei CSS sia abbastanza efficace

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.