[B net] Ricerca all'interno di una Drop Down

mercoledì 22 aprile 2009 - 09.57

$ilver Profilo | Junior Member

Ciao rieccomi con un nuovo dubbio che nn riesco a risolvere:

Usando una drop down list, contenete dei valori presi da un db, si può scrivere al suo interno facendo in modo di fare un filtro sui dati della combo?

Cioè mi spiego meglio
ho una ddl che contiene 100 valori e quindi è un po lungo andare a selezionarsi il valore corretto, allora mi hanno chiesto di poter scrivere all'interno della ddl e in base a quello che si scrive far comparire (tramite un like) invece di 100 valori magari 10 oppure se si scrive il valore corretto far comparire solo lui, quindi filtrare direttamente scrivendo sulla ddl stessa, si può o è fantascienza?

Grazie mille a tutti.

samar Profilo | Senior Member

Forse una cosa del genere può servirti...

http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx

$ilver Profilo | Junior Member

Si più o meno una cosa del genere, però al posto di una textbox vorrei usare una drop down, anche perchè nella drop io ho il valore id di ogni valore e ad ogni selezione prendo il selected value.
Posso utilizzare questo esempio con la ddl?

Grazie mille

samar Profilo | Senior Member

Purtroppo non ho esperienze con le ddl, posso solo indicarti questa pagina (c#) che magari ti può indirizzare sulla strada giusta...

http://www.codeproject.com/KB/custom-controls/combobox.aspx

$ilver Profilo | Junior Member

Ora guardo, anche se io c# lo conosco proprio poco.
Inoltre posso fare quel controllo ajax importando un riferimento nel mio progetto vbnet?

samar Profilo | Senior Member

Se ti riferisci a quello con la textbox ti consiglio di guardare il video linkato nella pagina...

$ilver Profilo | Junior Member

Guarda visto che Ajax non l'ho mai usato e quindi non sono pratico ho cercato un po in giro e ho provato a fare questa funzione:

Public Sub AutoCompleteCombo_Leave(ByVal cbo As combobox) Dim iFoundIndex As Integer Dim text As String Dim value As String Dim iStartIndex As Int32 Dim bFoundSelectedItem As Boolean text = cbo.Text value = CType(cbo.SelectedValue, String) bFoundSelectedItem = False iStartIndex = -1 While (Not bFoundSelectedItem) iFoundIndex = cbo.FindStringExact(cbo.Text, iStartIndex) cbo.SelectedIndex = iFoundIndex If CType(cbo.SelectedValue, String) = value Then bFoundSelectedItem = True Else iStartIndex = iFoundIndex End If End While indicecombo = iFoundIndex End Sub

Solo che mi da errore perchè per una web application non riconosce l'oggetto combobox e quindi nemmeno la funzione FindStringExact, la mia domanda è questa, c'è un equivalente per le dropdownlist in applicazioni web?

samar Profilo | Senior Member

L'unico metodo che si avvicina di più secondo me è FindByText o FindByValue delle ListItemCollection, trovi info a questo indirizzo:

http://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.listitemcollection.findbytext.aspx

si dovrebbe cercare di utilizzarlo nel tuo esempio ma la vedo difficile, forse ci vuole un altro approccio...

$ilver Profilo | Junior Member

Quindi secondo te devo per forza fare con ajaxtoolkit?

samar Profilo | Senior Member

Non solo con ajax, potrebbe darti una mano anche jquery, conosci?

$ilver Profilo | Junior Member

più o meno, in che modo potrebbe darmi una mano?
tu come agiresti?

samar Profilo | Senior Member

Purtroppo non riesco a fare prove ma ho scovato questo articolo:

http://www.aspdotnetcodes.com/AutoComplete_Textbox_Addtional_Parameters.aspx

diciamo che è una via di mezzo, a quanto pare utilizzare una ddl nativa è molto complicato...

$ilver Profilo | Junior Member

Ti ringrazio davvero, ora faccio un po di prove poi ti dico come e se ho risolto
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