Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857

    Consiglio per form insert/update righe ordine

    Mi serve tutto il vostro prezioso know-how: devo realizzare un form per l'inserimento ed anche modifica di righe d'ordine.
    Userò un updatepanel che racchiude tutto per l'aggiornamento dei totali di riga con ajax.

    Vorrei ottenere una griglia (inizialmente con una riga vuota e possibilità di aggiungere righe successive) con un controllo per ogni cella nel quale dovrò indicare di volta in volta qtà, misuraX, misuraY, presenza di optional1, di optional2, etc etc e ad ogni modifica di un controllo deriverà un ricalcolo del totale di riga e del totale dell'ordine.

    E qui ora viene la parte difficile:
    non so a priori quanti/quali/che tipo di controlli dovrò utilizzare per ogni riga perchè i dati e le opzioni richiesti dipendono dalla tipologia di prodotto che indicherò nella testata (li ho tabellati in un db: solo una volta scelta la tipologia di prodotto saprò che la riga dovrà comporsi -ad es.- con qtà, dimX, dimY, peso, opt1, opt2, optn e saprò che per l'opt1 dovrò usare una dropdownlist con scelta si/no, per opt2 dovrò usare un campo di testo numerico required, per opt3 un altro campo numerico e che dovrà assumere un valore compreso tra x e y altrimenti deve comparire un alert, e via così).
    Non posso prevedere uno usercontrol preconfezionato specifico per ogni tipologia di prodotto (con le celle già preparate con i controlli giusti per quel prodotto intendo) perchè le tipologie saranno un centinaio, quindi dovrò in sostanza comporre le righe della griglia e i controlli "al volo" aggiungendo i controlli, i controlli di validazione e tutto il resto... la cosa buona è che una volta scelta la tipologia di prodotto le righe della griglia poi saranno tutte uguali (non ci potranno essere righe con celle diverse).

    Io mi sto figurando una specie di gridview con i controlli nelle celle, con le colonne (e i controlli nelle celle corrispondenti) derivate dalla tabella di cui parlavo prima.

    Naturalmente la stessa griglia dovrà servire per l'inserimento ed anche la modifica dei dati in una tabella del db.

    Avete un approccio da consigliarmi in modo da non zapparmi da solo e morire sotto le tonnellate di righe di codice che prevedo mi costerà questa cosa?
    (un'idea che mi era venuta è che potrei prevedere uno user control con TUTTE le celle ed i controlli possibili previsti dalle tipologie di prodotti e potrei nascondere quelli che non servono alla tipologia di prodotto selezionata ma questo approccio non va bene perchè nel caso venisse aggiunta una opzione dovrei rimettere mano al codice dello user control per integrarla, invece deve succedere esattamente il contrario: se nella tabella di prima viene aggiunta una opzione questa deve aggiungersi automaticamente anche alla mia griglia... )

    Posso iniziare da un sample con poche celle per sviluppare la cosa e prendere confidenza col meccanismo ma al momento mi serve una guida che mi dia l'avvio nella direzione giusta...
    ('mmazza che papiro ho scritto, scusatemi)
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    Posso darti un solo consiglio: sii piu' OLD SCHOOL.

    Vedi di farla piu' SEMPLICE possibile, senza incastonare controlli dentro altri.
    Ad esempio, parti senza UpdatePanel, aggiungilo dopo. I totali puoi calcolarli anche ad ogni postback e visualizzarli in una label.

    Puoi anche evitare di utilizzare GridView (non so cosa intendevi per "griglia"), ma solo degli UserControl sulla Pagina, che dovrai rigenerare ad ogni postback con gli stessi ID, e qui ti viene in aiuto il Framework con il Viewstate facendoti rivedere tutto com'era prima del postback: devi solo contarli e rigenerarli con gli ID giusti.

    Insomma, cerca di pensare a cio' che davvero serve e togli tutto cio' che puo' renderti la vita difficile.
    Al limite, aggiungi i miglioramenti dopo che l'essenziale funziona.

    Per il resto, dovresti scrivere un po' di codice o spiegare meglio la DINAMICA di scelta dei componenti.

    A me viene in mente la customizzazione di una macchina, se non ho capito male (tipo la scelta degli accessori etc)

  3. #3
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    Grazie per le dritte!
    Sono già old-style di mio, cercherò di stare ancora più sul tradizionale...
    Non si tratta propriamente di un configuratore ma ci si avvicina: pensa alla scelta degli accessori solo che il configuratore non è relativo a una sola macchina ma ad un centinaio di modelli diversi e ognuno ha i suoi optional diversi da quelli degli altri modelli, es uno ha l'abs, il clima e il controllo di trazione, l'altro non ha l'abs e il clima ma ha il controllo di trazione e i fendinebbia e la trazione integrale e blablabla... ognuno di questi optional può avere varianti quindi la scelta del fendinebbia può essere giallo, bianco o arancio... that's why la sfilza di controlli che devo mettere nell'inserimento della riga dev'essere "dinamica" ovvero comporsi a seconda della scelta del modello.

    Più che una gridview io avevo in mente un repeater che binderei ai dati inseriti come righe d'ordine, dici di no?
    Essendo la scelta del modello nella testata, le righe poi sono tutte uguali tra loro quindi lo schema dei controlli da ripetere ad ogni riga è costante.
    La paura mia è nella creazione del controllo da codice... nel caso di una dropdown ad esempio vuol dire che devo ricreare il controllo, popolare le opzioni e indicare il selectedvalue ad ogni postback, giusto?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    Quote Originariamente inviata da supermac Visualizza il messaggio
    Grazie per le dritte!
    nel caso di una dropdown ad esempio vuol dire che devo ricreare il controllo, popolare le opzioni e indicare il selectedvalue ad ogni postback, giusto?

    Si, quindi ti consiglio di dar loro un ID che controlli, cioe' tipo "DDL" + contatore = "DDL1", "DDL2" etc. e di memorizzare la variabile "contatore" nel viewState, in modo che ad ogni postBack fai un ciclo in cui li ricrei.

    Vedrai che il viewState ti aiutera' nel riproporti esattamente la stessa situazione, SE GLI DAI GLI STESSI ID.

    Magari fai una piccola prova a parte prima, aggiungendo da codice C# due dropdownlist alla pressione di un pulsante e poi ricreandole nel Page_Load alla pressione di un altro pulsante (cioe' fai un po' di palestra da un'altra parte )

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 © 2024 vBulletin Solutions, Inc. All rights reserved.