Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908

    [ASP.NET-C#] Consiglio per piccolo problema

    Ho realizzato quanto segue:

    http://www.danielemarino.name/Start.aspx

    Ho un fastidioso problema: selezionando, ad esempio:

    Tipo installazione: IN LUCE
    Modello: AIR
    Finitura: WOODGRAIN

    e selezionando poi, ad esempio Woodgrain 9016, se poi cambio il modello, scegliendone uno qualsiasi, vedo comunque ancora i WOODGRAIN. Cosa sbaglio?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  2. #2
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    codice
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  3. #3
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Questo controlla il tipo di installazione:

    codice:
            protected void installationTypeSelect_SelectedIndexChanged(object sender, EventArgs e)
            {
                if(installationTypeSelect.SelectedValue != null)
                {
                    if(installationTypeSelect.SelectedValue == "inLuce")
                    {
                        Response.Redirect("Start.aspx");
                    }
                    if(installationTypeSelect.SelectedValue == "oltreLuce")
                    {
                        Response.Redirect("StartOltre.aspx");
                    }
                }
            }
    Questo mostra le finiture in base al modello selezionato:
    codice:
            protected void modelTypeSelectIN_SelectedIndexChanged(object sender, EventArgs e)
            {
                HideAllStart();
    
    
                if (modelTypeSelectIN.SelectedValue == "air_IN")
                {
                    finituraIN_AIR.Visible = true;
     
                }
                else
                {
                    finituraIN_AIR.Visible = false;
                    
    
    
                }
    
    
                if(modelTypeSelectIN.SelectedValue=="box_IN")
    
    
                {
                    finituraIN_BOX.Visible = true;
    
    
                }
                else
                {
                    finituraIN_BOX.Visible = false;
                    
                }
    
    
                if(modelTypeSelectIN.SelectedValue =="plana_IN")
                {
                    finituraIN_PLANA.Visible = true;
    
    
                }
                else
                {
                    finituraIN_PLANA.Visible = false;
                }
                if(modelTypeSelectIN.SelectedValue == "wide_IN")
                {
                    finituraIN_WIDE.Visible = true;
    
    
                }
                else
                {
                    finituraIN_WIDE.Visible = false;
                }
                if(modelTypeSelectIN.SelectedValue == "wave_IN")
                {
                    finituraIN_WAVE.Visible = true;
    
    
                }
                else
                {
                    finituraIN_WAVE.Visible = false;
                }
                if(modelTypeSelectIN.SelectedValue =="sound_IN")
                {
                    finituraIN_SOUND.Visible = true;
                }
                else
                {
                    finituraIN_SOUND.Visible = false;
                }
    
    
                if(modelTypeSelectIN.SelectedValue== "planaFG_IN")
                {
                    finituraIN_PLANA_FG.Visible = true;
                }
                else
                {
                    finituraIN_PLANA_FG.Visible = false;
                }
    
    
    
    
            }

    Questo mostra o nasconde le miniature
    codice:
            protected void finitureWIDE_IN_SelectedIndexChanged(object sender, EventArgs e)        {
                if(finituraIN_WIDE.SelectedValue == "WideWoodGrain_IN")
                {
                    ShowWideWoodGrainIn();
                }
               else
                {
                    HideWideWoodGrainIn();
                }
    
    
                if(finituraIN_WIDE.SelectedValue == "WideWoodStyle_IN")
                {
                    ShowWideWoodStyleIn();
                }
                else
                {
                    HideWideWoodStyleIn();
                }
                if (finituraIN_WIDE.SelectedValue == "WideSlightGrain_IN")
                {
                    ShowWideSlightGrainIn();
                }
                else
                {
                    HideWideSlightGraIn();
                }
    
    
                if(finituraIN_WIDE.SelectedValue== "WideSmooth_IN")
                {
                    ShowWideSmooth();
                }
                else
                {
                    HideWideSmooth();
                }
    
    
            }
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  4. #4
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    a pelle, HideAllStart dovrebbe nascondere tutto, modelli e finiture, a prescindere e poi in base alla selezione della finitura devi solo mostrare i modelli corrispondenti (quindi non hai nemmeno bisogno di tutti quegli else nei blocchi relativi ai selectedvalue nè delle finiture nè dei modelli)

    il codice di HideAllStart?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  5. #5
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    PS: nominando gli oggetti e i valori delle ddl con più accortezza e un paio di funzioncine smart, si possono fare le stesse cose con meno righe di codice e ti basta anche una pagina sola per fare tutto ...
    Ad esempio, ammettendo che i vari finituraIN_AIR &co siano dropdown e usando i relativi id come valori della dropdown modelTypeSelect, la tua funzione modelTypeSelectIN_SelectedIndexChanged si ridurrebbe a:
    codice:
    protected void modelTypeSelectIN_SelectedIndexChanged(object sender, EventArgs e)
            {
                HideAllStart();    
                dropdownlist ddl = me.findcontrol(modelTypeSelectIN.SelectedValue) ;
                ddl.visible=true;
            }
    (non conosco il c# e potrei aver scritto un castrone ma il senso spero sia chiaro)
    Ultima modifica di supermac; 25-07-2019 a 08:54
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  6. #6
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Quote Originariamente inviata da supermac Visualizza il messaggio
    a pelle, HideAllStart dovrebbe nascondere tutto, modelli e finiture, a prescindere e poi in base alla selezione della finitura devi solo mostrare i modelli corrispondenti (quindi non hai nemmeno bisogno di tutti quegli else nei blocchi relativi ai selectedvalue nè delle finiture nè dei modelli)

    il codice di HideAllStart?
    Eccolo:

    codice:
            protected void HideAllStart()        {
                HideAirModelIN();
                HideAirSlightGrainIN();
                HideAIRSmoothIN();
                HideAIRWoodGrainIN();
                HideInBoxWoodGrain();
                HideInBoxWoodStyle();
                HidePlana();
                HidePlanaColorIn();
                HidePlanaFG();
                HidePlanaFullGlass();
                HidePlanaMaterialIN();
                HidePlanaWoodIN();
                HideSoundSlightGrainIN();
                HideSoundWoodGrainIN();
                HideSoundWoodStyleIN();
                HideWaveIn();
                HideWideSlightGraIn();
                HideWideSmooth();
                HideWideWoodGrainIn();
                HideWideWoodStyleIn();
            }
    Uno dei metodi richiamati su:

    codice:
            protected void HideAirModelIN()        {
                Div_IN_AirSlightGrain6009.Visible = false;
                Div_IN_AirSlightGrain7016.Visible = false;
                Div_IN_AirSlightGrain7035.Visible = false;
                Div_IN_AirSlightGrain7040.Visible = false;
                Div_IN_AirSlightGrain8016.Visible = false;
                Div_IN_AirSlightGrain9002.Visible = false;
                Div_IN_AirSlightGrain9016.Visible = false;
                Div_IN_AirSmooth9006.Visible = false;
                Div_IN_AirWoodGrain6009.Visible = false;
                Div_IN_AirWoodGrain7016.Visible = false;
                Div_IN_AirWoodGrain7035.Visible = false;
                Div_IN_AirWoodGrain7040.Visible = false;
                Div_IN_AirWoodGrain8016.Visible = false;
                Div_IN_AirWoodGrain9002.Visible = false;
                Div_IN_AirWoodGrain9006.Visible = false;
                Div_IN_AirWoodGrain9016.Visible = false;
                Div_IN_AirWoodStyleChiara.Visible = false;
                Div_IN_AirWoodStyleMedia.Visible = false;
                Div_IN_AirWoodStyleMedioScuro.Visible = false;
                Div_IN_AirWoodstylePlusChiara.Visible = false;
                Div_IN_AirWoodstylePlusMedia.Visible = false;
            }
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    di solito e' la mancanza del controllo sul Postback (if !IsPostBack etc) nel page_load, che fa resettare al Bind iniziale

  8. #8
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Quote Originariamente inviata da djciko Visualizza il messaggio
    di solito e' la mancanza del controllo sul Postback (if !IsPostBack etc) nel page_load, che fa resettare al Bind iniziale
    Dove mi consigli di controllare se c'è postback o meno quindi?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  9. #9
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    nel page_load
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  10. #10
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Quote Originariamente inviata da supermac Visualizza il messaggio
    nel page_load
    Io nel Page_Load attualmente ho solo questo:

    codice:
    finituraIN_AIR.Visible = false;
                finituraIN_BOX.Visible = false;
                finituraIN_PLANA.Visible = false;
                finituraIN_WIDE.Visible = false;
                finituraIN_WAVE.Visible = false;
                finituraIN_SOUND.Visible = false;
                finituraIN_PLANA_FG.Visible = false;
                HideFinestrePlastica();
                HideFinestreAlluminio();
                HideGridPlastica();
                HideGridAlluminio();
                HideAll();
                HideWideSlightGraIn();
                HideWideSmooth();
                HidePlanaFG();
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

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.