Domanda

Ho 4 caselle di riepilogo (lstStates, lstCounties, lstCities e lstZipcodes). Ecco alcuni vincoli:

  • Nessuna delle caselle di riepilogo è disabilitata.

  • Ogni casella di riepilogo può essere selezionata in qualsiasi momento, il che significa che non esiste un ordine specifico che l'utente deve scegliere.

  • Il filtro è avanti e indietro. Con questo intendo che se un utente seleziona uno stato da lstStates, filtrerà lstCounties, lstCities e lstZipcodes. Se un utente seleziona un codice postale da lstZipcodes, filtrerà lstCities, lstCounties e lstStates.

  • Le caselle di riepilogo consentono selezioni multiple.

Ogni casella di riepilogo è associata a un datatable per ottenere i suoi dati iniziali. Il datatable viene recuperato da una stored procedure sqlserver. Ogni casella di riepilogo ha la propria procedura memorizzata, ad esempio lstStates ha una chiamata GetStates che restituisce una colonna (State) e ListBoxes DataValueField e DataTextField sono entrambi impostati su State. Simile a lstStates, lstCities è associato a un datatable che ottiene una colonna da un proc memorizzato GetCities che è la città.

Un'altra cosa che voglio sottolineare è che sto collegando un ObjectDataSource per ottenere il datatable.

È stato utile?

Soluzione

Già chiesto: Qual è il modo più efficace per filtrare le caselle di riepilogo in base alle selezioni di un altro in c #?

[modifica] OK, quello che devi fare è aggiungere un evento a ciascun evento [myListbox] _SelectedIndexChanged. Quando la selezione viene modificata, è necessario aggiornare tutte le altre caselle di riepilogo in base a tali selezioni. Suppongo che questo dovrà essere gestito dal database, dal momento che collegare gli Stati a ZipCodes in qualsiasi altro modo sarebbe brutto. Quindi presumibilmente i tuoi dati per gli Stati!

Quindi avrai bisogno di procs nel tuo db (o livello intermedio LINQ) che ottengano gli Stati tramite zip e così via. Ad ogni evento di selezione modificato, inviare la nuova selezione al db sproc e quindi ricollegare la casella di riepilogo in base ai dati di ritorno. Dovresti essere in grado di effettuare uno sproc per ognuno che restituisce tutti gli stati se non viene passato alcun zip e così via. [/ Modifica]

Altri suggerimenti

Per chiarire, al caricamento iniziale della pagina, si stanno caricando TUTTI i codici postali, TUTTE le città, TUTTI gli stati e TUTTI i paesi?

Questo mi sembra un po 'ingombrante. Questo è il tipo di requisito che vorrei mettere in discussione. (Certo, non so che non l'hai già messo in discussione o che è arrivata una buona risposta).

ScriptManager.RegisterStartupScript (Page, Page.GetType (), " bab " ;, " CacheItems (); " ;, true);

    var ddlText, ddlValue, ddl, lblMesg;     funzione CacheItems () {         ddlText = new Array ();         ddlValue = new Array ();         ddl = document.getElementById (" ");         per (var i = 0; i
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top