1.245 messaggi dal 03 marzo 2004
Ho una form con diversi campi (txtquantita, txtmarca ecc...) tra i vari campi ho un imput per l'upload dei files che si chiama Lfile che è questa qui sotto:
<INPUT class="txtbox" id="Lfile" type="file" name="Lfile" runat="server">


Al click del bottone salva if (Lfile.Value=="1") mi finisce sempre nel true, sia che io metta un valore a lfile.value sia che io non lo metta, come mai?

private void ButSalva_Click(object sender, System.EventArgs e)
    {
      if (TxtQuantita.Text=="")
      {
        TxtQuantita.Text="/";
      }
      if (TxtMarca.Text=="")
      {
        TxtMarca.Text="/";
      }
      if (TxtModello.Text=="")
      {
        TxtModello.Text="/";
      }
      if (TxtPrezzo.Text=="")
      {
        TxtPrezzo.Text="/";
      }
      if (Lfile.Value == null)
      {
        Lfile.Value="1";
      }

      string cate = TendCat.SelectedItem.Value;
      string desc = TendDescr.SelectedItem.Value;
      string stat = TendStato.SelectedItem.Value;
      string marc = TxtMarca.Text;
      string mode = TxtModello.Text;
      string quan = TxtQuantita.Text;
      string prez = TxtPrezzo.Text;
      string lfil = Lfile.Value="1";

      if (Lfile.Value=="1")
      {
        if (CheckBox1.Checked==true)
        {
          Response.Write("Bisogna eliminare l'immagine presente<br>");
          Response.Write("bisogna aggioranre il db cancellando l'immagine e aggiornare gli altri campi");
        }
        else
        {
          Response.Write("bisogna aggiornare il db con i dati modificati");
        }
      }
      else
      {
        if (CheckBox1.Checked==true)
        {
          Response.Write("Bisogna eliminare l'immagine presente<br>");
          Response.Write("uplodare l'img nuova<br>");
          Response.Write("bisogna aggioranre il db modificando l'immagine e aggiornare gli altri campi");
        }
        else
        {
          Response.Write("bisogna aggiornare il db con i dati modificati e aggiungere foto");
        }
      }
  }

L'infinito è... ASP.NET
1.245 messaggi dal 03 marzo 2004
Aggiornamenti: Credo che il problema derivi da qui:

    protected string StrTesto(string testo) 
    { 
      if (testo =="1")
      {
        return "Nessuna foto associata a questo articolo";
        CheckBox1.Visible=false;
        Elfoto.Visible=false;
      }
      else 
      {
        string pippo = "<img src=\"../myPath/";
        pippo = pippo + Request.QueryString["fot"];
        pippo = pippo + "\">";
                txtlfile.Visible=false;
        Lfile.Visible=false;
        return pippo; 
      }
    }


Ossia la visibilità del campo Lfile è "variabile" quindi quando ricarico la pagina questo "scompare" e prende di conseguenza il valore 1. Ma non so come risolvere l'inconveniente!

Modificato da Sonika il 08 ottobre 2004 10.35 -

L'infinito è... ASP.NET
ho sempre fatto così

if (UploadImg.PostedFile != null && UploadImg.PostedFile.FileName.Length > 0 )
        {...}


settato "enctype="multipart/form-data""? del form?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
1.245 messaggi dal 03 marzo 2004
Hem... non ho capito il codice che mi hai messo!

Si nel form è settato, ma ancora non faccio l'upload, ho messo dei semplici response.write per vedere se finivo nella parte giusta della if.

Particamente ho articoli che hanno o non hanno un img... questa sarebbe la pagina di modifica, quindi si può (cambiare img, cancellare img e caricare img se non c'è)

Quindi ho fatto si che:
Se l'immagine c'è la visualizza, se clicco nella checkbox1 per eliminare il file appare Lfile per poter uplodare una img nuova e qui arriva l'errore, perchè al click di salva lfile si "nasconde" quindi perde il valore.

L'infinito è... ASP.NET
il codice che ho postato è solo per controllare "lesistenza" di un file al posto di UploadImg di andrebbe il tuo Lfile, ma si può fare tutto anche con value :)

checkbox1 ha la propietà AutoPostback = true?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
1.245 messaggi dal 03 marzo 2004
Tnx :)
Si! Perchè quando viene cliccato appare Lfile.
Ti metto tutto il codice che forse capisci meglio:
    private void Page_Load(object sender, System.EventArgs e)
    {
      if(!Page.IsPostBack) 
      {
        CollegaTendCat();
        CollegaTendDescr();
        CollegaTendStato();
      }
      
    TxtMarca.Text=(Request.QueryString["mar"]);
      TxtModello.Text=(Request.QueryString["mod"]);
      TxtQuantita.Text=(Request.QueryString["qua"]);
      TxtPrezzo.Text=(Request.QueryString["pre"]);
      Label7.DataBind();

      this.CheckBox1.CheckedChanged += new EventHandler (CheckBox1_CheckedChanged);
    }

    public void CollegaTendCat()
    {
      string tableName = "[CATEGORIE]";
      string Campo = "Categoria";
      TendCat.DataTextField = "Categoria";
      TendCat.DataValueField = "Id_Categoria";
      TendCat.DataSource = Access.visRecord2(tableName, Campo).DefaultView;
      TendCat.DataBind();
      string tcat=(Request.QueryString["cat"]);
      TendCat.SelectedIndex = TendCat.Items.IndexOf(TendCat.Items.FindByValue(tcat)); 
    }

    public void CollegaTendDescr()
    {
      string tableName = "[DESCRIZIONI]";
      string Campo = "Descrizione";
      TendDescr.DataTextField = "Descrizione";
      TendDescr.DataValueField = "Id_Descrizione";
      TendDescr.DataSource = Access.visRecord2(tableName, Campo).DefaultView;
      TendDescr.DataBind();
      string tdesc=(Request.QueryString["des"]);
      TendDescr.SelectedIndex = TendDescr.Items.IndexOf(TendDescr.Items.FindByValue(tdesc)); 
    }

    public void CollegaTendStato()
    {
      string tableName = "[STATI]";
      string Campo = "Stato";
      TendStato.DataTextField = "Stato";
      TendStato.DataValueField = "Id_Stato";
      TendStato.DataSource = Access.visRecord2(tableName, Campo).DefaultView;
      TendStato.DataBind();
      string tstato=(Request.QueryString["sta"]);
      TendStato.SelectedIndex = TendStato.Items.IndexOf(TendStato.Items.FindByValue(tstato));
    }

    private void ButSalva_Click(object sender, System.EventArgs e)
    {
      if (TxtQuantita.Text=="")
      {
        TxtQuantita.Text="/";
      }
      if (TxtMarca.Text=="")
      {
        TxtMarca.Text="/";
      }
      if (TxtModello.Text=="")
      {
        TxtModello.Text="/";
      }
      if (TxtPrezzo.Text=="")
      {
        TxtPrezzo.Text="/";
      }
      if (Lfile.Value == null)
      {
        Lfile.Value="1";
      }

      string cate = TendCat.SelectedItem.Value;
      string desc = TendDescr.SelectedItem.Value;
      string stat = TendStato.SelectedItem.Value;
      string marc = TxtMarca.Text;
      string mode = TxtModello.Text;
      string quan = TxtQuantita.Text;
      string prez = TxtPrezzo.Text;
      string lfil = Lfile.Value;

      if (Lfile.Value=="1")
      {
        if (CheckBox1.Checked==true)
        {
          Response.Write("Bisogna eliminare l'immagine presente<br>");
          Response.Write("Bisogna aggioranre il db cancellando l'immagine e aggiornare gli altri campi");
        }
        else
        {
          Response.Write("bisogna aggiornare il db con i dati modificati");
        }
      }
      else
      {
        if (CheckBox1.Checked==true)
        {
          Response.Write("Bisogna eliminare l'immagine presente<br>");
          Response.Write("uplodare l'img nuova<br>");
          Response.Write("bisogna aggioranre il db modificando l'immagine e aggiornare gli altri campi");
        }
        else
        {
          Response.Write("bisogna aggiornare il db con i dati modificati e aggiungere foto");
        }
      }
  }
    protected string StrTesto(string testo) 
    { 
      if (testo =="1")
      {
        return "Nessuna foto associata a questo articolo";
        CheckBox1.Visible=false;
        Elfoto.Visible=false;
      }
      else 
      {
        string pippo = "<img src=\"../myPath/";
        pippo = pippo + Request.QueryString["fot"];
        pippo = pippo + "\">";
                txtlfile.Visible=false;
        Lfile.Visible=false;
        return pippo; 
      }
    }

    private void CheckBox1_CheckedChanged(object sender, System.EventArgs e)
    {
      Lfile.Visible=true;
      txtlfile.Visible=true;
    }
  }

L'infinito è... ASP.NET
lo leggo con calma

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
quando viene richiamato il metodo StrTesto?


ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

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.