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

    Viewstate Input File Con Ajax

    Ciao a Tutti.
    Vado subito al sodo.

    Ho una pagina con una decina di "Input file" grazie alla quale un utente può fare l'upload di dieci files.

    Se i file risultano essere tutti file "jpeg" l'upload ha successo altrimenti visualizzo un messaggio di errore in corrispondenza del file "incriminato" grazie ai validator.
    Il problema è che alla visualizzazione dei messaggi dei validator il viewstate delle "Input file" viene perso, obbligando l'utente a ri-inserire tutti i 10 files anzichè il solo (o i soli) files che non rispettavano i requisiti.

    Sapete se c'è un modo per aumentare l' usabilità della pagina risolvendo questo problema ? magari usando AJAX?

    Accetto quasiasi consiglio.

    Grazie mille.

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    io userei un validatore personalizzato per controllare l'estensione del file, come da esempio:
    codice:
    <%@ 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>Pagina senza titolo</title>
        <link href="../stili/Styles.css" rel="stylesheet" type="text/css" />
    
        <script language="javascript" type="text/javascript">
    // <!CDATA[
    		function CheckTipoFile(sender, args)
    		{
    			var file = args.Value;
    			var p = file.lastIndexOf(".");
    			if(p != -1)
    			{
                    var estensione = file.substr(p+1);
                    if(estensione.toUpperCase() == "JPG")
                        args.IsValid = true;
                    else
                        args.IsValid = false;                    			
    			}
    			else 
    			    args.IsValid = false;
    			
    		}
    
    
    
    // ]]>
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <h3>Upload di file *.jpg</h3>
                <asp:FileUpload ID="FileUpload1" runat="server" ControlToValidate="FileUpload1" />
    
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Specifica il file jpg da inviare" ControlToValidate="FileUpload1"></asp:RequiredFieldValidator>
                
    
                <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Puoi spedire solo files jpg" ClientValidationFunction="CheckTipoFile" ControlToValidate="FileUpload1"></asp:CustomValidator>
                
    
    <asp:Button ID="Button1" runat="server" Text="Invia" /></p>
                
    
    <asp:Label ID="Label1" runat="server"></asp:Label></p>
            </div>
        </form>
    </body>
    </html>
    codice
    codice:
    Option Strict On
    
    Partial Class prove_a
        Inherits System.Web.UI.Page
    
        Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            'forza la validazione ti tutti i controlli
            Me.Validate()
            If Not Me.IsValid() Then
                Dim ctrl As BaseValidator
                Dim errorCount%
                For Each ctrl In Me.Validators
                    If Not ctrl.IsValid Then errorCount += 1
                Next
                Me.Label1.Text = "Ci sono " & (errorCount) & " errori"
            Else
                Me.Label1.Text = ""
            End If
    
        End Sub
    
        Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
            'Questa è la funzione lato server per validare il validatore personalizzato
            Dim file As String = args.Value
            Dim estensione As String = Path.GetExtension(file).ToUpper()
            args.IsValid = (estensione = ".JPG")
    
        End Sub
    End Class
    Pietro

  3. #3
    Grazie Mille.

    Però di VB Net ci capisco davvero poco purtroppo... sono più ferrato con C#...

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Duncan_McCloud
    Grazie Mille.

    Però di VB Net ci capisco davvero poco purtroppo... sono più ferrato con C#...
    c# allora queste dovrebbero essere banalità per te
    Pietro

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.