Operare con una dropdown

venerdì 03 aprile 2009 - 10.48

$ilver Profilo | Junior Member

Ciao a tutti,
volevo chiedervi se era possibile inserire un nuovo elemento da una dropdown, magari allo scatenare di un doppio click sulla combo.

Cioè io ho una drop che contiene dei valori, la mia domanda è, si può, facendo (per esempio) doppio click sulla combo, fare in modo di aggiungere un nuovo valore senza passare dalla mia anagrafica, quindi aggiungengere un nuovo record nel mio db?

Grazie mille.

Anonimo Profilo | Senior Member

Non mi è molto chiaro ma di fatto se tu intercetti qualsiasi evento nel postback della pagina entri nel codice e scrivi:

ddl.Items.Add(new ListItem("descrizione", "valore");

dove ddl è il nome della tua dropdownlist. Ciao fammi sapere se va bene.



paoval72 Profilo | Senior Member

Ciao, a quanto ne so io non è possibile fare un doppio click su una dropdownlist di asp. Ogni click corrisponde alla selezione di un elemento: un doppio click corrisponde a selezionare due volte lo stesso elemento.
Se ci dici cosa ti serve , possiamo provare alter soluzioni (tipo un button che faccia l'inserimento)
Pper quanto riguarda l'aggiunta di un elemento, TeamIcon (un saluto) ti ha già dato la soluzione.

Saluti,
PV

$ilver Profilo | Junior Member

Praticamente io ho fatto un anagrafica per inserire gli utenti nel db, poi in altre maschere della mia web form (creata in vb.net) c'è una combo dove all'interno ci sono gli utenti presi dal db.
Mi hanno chiesto che vorrebbero avere la possibilità di inserire l'utente nel db anche direttamente da una delle maschera dove ci sono le combo degli utenti senza andare per forza nell'anagarfica Utente.

Naturlamente inserendo l'utente nel db dalla maschera dove ci sono le combo a loro basterebbe inserire solo il campo che si vede nella combo, quindi username.

Si può fare?

Anonimo Profilo | Senior Member

Innanzitutto ciao Paolino e ben tornato, sentivo la tua mancanza...

Poi riguardo al problema io opterei per questa soluzione:

1) una dropdownlist per la tua scheda
2) una dropdownlist per l'anagrafica eventalmente da agigungere
3) un pulsante che quando premuto prende gli elementi selezionati dalla seconda dropdownlist e li trasferisce nella prima ed esegue le operazioni ce vuoi tanto sei in postback.

Ti sembra sensata?

$ilver Profilo | Junior Member

Scusami ma non ho molto ben capito...

Allora una drop e un pulsante nella mia maschera, un eventuale drop nella mia anagrafica, e fin qui ci sono

Ma non ho capito il passo successivo di quando clicco il pulsante e mando i valori selezionati (quali valori che devo inserirne uno nuovo e quindi non l'ho selezionato) ad una seconda drop (quale quella dell'anagrafica?)

Ti chiedo scusa

Anonimo Profilo | Senior Member

Allora non mi è chiaro molto come è fatta la tua pagina:

Se sei nella pagina dove vengono elencati gli utenti che informazioni ti servono per creare un nuovo utente e quindi la sua relativa anagrafica?

$ilver Profilo | Junior Member

Io nella mia pagina ho una drop filtrata in base a una condizione where e nel campo nascosto ho l'idutente, nel campo di visualizzazione ho il nome dell'utente.
Il cliente vorrebbe poter inserire direttamente da questa pagina l'utente e che venga visualizzato subito nella drop l'utente appena inserito, senza dover andare nella pagina di anagrafica e ritornare in questa.

In particolar modo mi ha chiesto se era possibile cliccando sulla drop poter inserire direttamente nel database.

Questo è il mio problema

paoval72 Profilo | Senior Member

>Io nella mia pagina ho una drop filtrata in base a una condizione
>where e nel campo nascosto ho l'idutente, nel campo di visualizzazione
>ho il nome dell'utente.
Stai parlando di una pagina maschera, vero? ok
>Il cliente vorrebbe poter inserire direttamente da questa pagina
>l'utente e che venga visualizzato subito nella drop l'utente
>appena inserito, senza dover andare nella pagina di anagrafica
>e ritornare in questa.
L'inserimento è manuale (quindi, tipo una serie di textbox in cui digitare dati) o il tuo cliente deve potere avere una scelta da una lista (listBox o DropDownList pre-confezionate)?
>In particolar modo mi ha chiesto se era possibile cliccando sulla
>drop poter inserire direttamente nel database.
Ovviamente, come ha scritto TeamIcon, se usi il postback, non ci sono problemi per aggiornare il db e ricaricare la ddl (basta rifare il bind).
Per il codice in Vb, vedrò di tradurlo dal C# che uso.

PV

$ilver Profilo | Junior Member

>Stai parlando di una pagina maschera, vero? ok
Sto parlando di una pagina.aspx

>L'inserimento è manuale (quindi, tipo una serie di textbox in
>cui digitare dati) o il tuo cliente deve potere avere una scelta
>da una lista (listBox o DropDownList pre-confezionate)?
L'inserimento è manuale, non è legato a nessuna scelta

>Ovviamente, come ha scritto TeamIcon, se usi il postback, non
>ci sono problemi per aggiornare il db e ricaricare la ddl (basta
>rifare il bind).
Può essere una soluzione che va bene oppure mi appesantisce la pagina?
Però non ho capito come farlo nel senso nel postback devo metter quella linea di codice e ogni volta che si clicca sulla combo lui la esegue?

>Per il codice in Vb, vedrò di tradurlo dal C# che uso.
Ti ringrazio molto

paoval72 Profilo | Senior Member

>Sto parlando di una pagina.aspx
Scusa, mi sono espresso male: intendevo dire che non stai parlando della pagina anagrafica, ma di una di quelle che chiami "maschere".

>Può essere una soluzione che va bene oppure mi appesantisce la
>pagina?
>Però non ho capito come farlo nel senso nel postback devo metter
>quella linea di codice e ogni volta che si clicca sulla combo
>lui la esegue?
La mia idea, se ho capito bene la struttura del tuo progetto, è:
1) nella tua pagina metti
a) una dropdownlist con i dati del db
b) un campo text (una textbox) in cui è possibile inserire un nuovo elmento (ovviamente il testo che poi apparirà nella dropdown)
c) un button
Il tuo cliente inserisce il nome nella textbox e clicca il bottone.
Lato codice vai a gestire l'inserimento nell'evento _click del button. E qui dipende da quello che stai facendo. nel senso che tanto inserisci su db, giusto? Quindi farai una bella insert (non so come sia fatta la tabella e come assegni l'id di una riga), poi riassocerai i dati del tuo db alla dropdown.
Quanto ci impiega? Dipende dal numero dei tuoi record, ma non credo che tu debba caricare 1 milione di righe (in tal caso, opterei per un oggetto diverso dalla dropdown).
La creazione e l'inserimento di un nuovo item che ti suggerivamo ovviamente così decadrebbero, perchè tanto salvi sul Db e da lì recuperi i dati.
Spero di essere stato chiaro e di averti dato qualche spunto.
Resto a disposizione.
PV

$ilver Profilo | Junior Member

>Scusa, mi sono espresso male: intendevo dire che non stai parlando
>della pagina anagrafica, ma di una di quelle che chiami "maschere".
A ok, cmq si stavo parlando della maschera e non dell'anagrafica

>La mia idea, se ho capito bene la struttura del tuo progetto,
>è:
>1) nella tua pagina metti
> a) una dropdownlist con i dati del db
>b) un campo text (una textbox) in cui è possibile inserire un
>nuovo elmento (ovviamente il testo che poi apparirà nella dropdown)
> c) un button
>Il tuo cliente inserisce il nome nella textbox e clicca il bottone.
>Lato codice vai a gestire l'inserimento nell'evento _click del
>button. E qui dipende da quello che stai facendo. nel senso che
>tanto inserisci su db, giusto? Quindi farai una bella insert
>(non so come sia fatta la tabella e come assegni l'id di una
>riga), poi riassocerai i dati del tuo db alla dropdown.
>Quanto ci impiega? Dipende dal numero dei tuoi record, ma non
>credo che tu debba caricare 1 milione di righe (in tal caso,
>opterei per un oggetto diverso dalla dropdown).
>La creazione e l'inserimento di un nuovo item che ti suggerivamo
>ovviamente così decadrebbero, perchè tanto salvi sul Db e da
>lì recuperi i dati.

La mia domanda è la seguente: io metto metto visibile la mia drop e la textbox la metto nascosta, su che evento posso far comparire la textbox e il pulsante di inserimento?

>Spero di essere stato chiaro e di averti dato qualche spunto.
Si mi hai aiutato molto

>Resto a disposizione.
Hai visto ti ho subito chiesto

>PV
>
>
Grazie mille di tutto

paoval72 Profilo | Senior Member

>La mia domanda è la seguente: io metto metto visibile la mia
>drop e la textbox la metto nascosta, su che evento posso far
>comparire la textbox e il pulsante di inserimento?

Secondo me, questo dipende da te.
1) O la fai comparire solo per utenti con un certo profilo che scegli tu. Quindi, ad esempio, a Pippo hai dato un profilo di amministratore (ATTENZIONE. non sto parlando di amministratore di macchina o di qualche default di VS, ma proprio un profilo che assegni tu da db): quando entra nelle pagine, controlli lo stato del suo profilo e di default rendi visibili i campi di inserimento. Se a Pluto hai assegnato un profilo (ad esempio) "visitatore", sul page_load delle pagine controllerai il suo profilo e non gli visualizzerai i campi d'inserimento.
2) O aggiungi un bottone con text "inserisci", che come unica azione ti rende visibile il resto. In verità, non c'è neanche bisogno di crearne un altro, basterebbe gestire quello dell'insert con qualche piccola astuzia.
3)Se sei già in un'area "protetta" (cioè riservata solo a certi clienti) e tutti hanno la possibilità di inserire, puoi lasciare i campi d'inserimento sempre visibili

Ripeto. dipende da chi può fare e che cosa può fare.

PV
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5