JQuery, select autocomplete e MVC

lunedì 30 maggio 2011 - 08.27
Tag Elenco Tags  C#  |  .NET 3.5  |  Visual Studio 2008  |  Javascript

volperubbia Profilo | Senior Member

Ciao a tutti,
in un'applicazione ASP.NET MVC vorrei realizzare un controllino per le selezioni N:1
e non mettere le classiche drop down list, perchè quando le OPTION sono molte
risulta pesante. Alternative?

Pensavo di ricorrere a jQuery e al select auto complete.

<label for="Prova">Prova</label>
<select id="Prova" name="Prova">
<option value=""></option>
<option value="1">1 - Uno</option>
<option value="2">2 - Due</option>
</select>
<script type="text/javascript">
$(function() {
jQuery("select").select_autocomplete();
});
</script>

Questo approccio è l'ideale ma quando gli elementi sono molti,
la pagina si appesantisce perchè nell'html vengono inserite le n voci.

E' possible associare questo controllo ad una chiamata json e popolare
le voci via javascript solo quando l'utente digita una chiave di ricerca??

Sono riuscito a fare una cosa simile associando l'autocomplete ad una
text box, vedi allegato ...

<% var rvd = Request.QueryString; %>
<label for="Prova">Prova</label>
<%= Html.TextBox("Prova", rvd["Prova"]) %>
<script type="text/javascript">
Functions.ManyToOneFromQuery("Prova", "SELECT ID, DESCRIPTION FROM TABLE");
</script>

Funziona abbastanza bene e la pagina è assai più leggera.

Vorrei però fare questa cosa su un oggetto SELECT,
perchè su una TEXT BOX:
- quando seleziono un elemento, nella text box vedo solo la chiave
(io vorrei vedere chiave + ": " + valore)
- se nel query string c'è una determinata chiave, vedere chiave + ": " + valore
selezionata appena entro nella pagina.

Grazie per l'attenzione,
Davide

Gluck74 Profilo | Guru

ciao,
purtroppo non conosco perfettamente jquery, quindi non so come si comporta con gli eventi.
Putroppo non sono nemmeno molto esperto di MVC, quindi non saprei dirti se puoi usare ajax control toolkit, che avrebbe un controllo già pronto per questo caso.
(aiutati con questo link: http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=330)

In linea di massima, comunque puoi usare una chiamata ajax che ti restituisce i dati senza doverli caricare tutti prima:
puoi creare una funzione javascript che viene chiamata sull'evento onchange di un textbox, dove l'utente digita per la ricerca; la funzione fa la chamata ajax per prelevare i dati che dovrai a questo punto mostrare.

Spero di averti dato un buono spunto.


____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5