944 messaggi dal 11 febbraio 2013
Seguendo il testo Asp.net 4.5 di Bochicchio ho tentato di riprodurre l'esempio di autocompletamento con piu
input nel mio progetto MVC


public ActionResult AutocompleteCliente(string term)//CASE SENSITIVE
        {
            string utente = Utility.Utente();

            var Cliente = (from o in dbDati.tabella
                            where o.utente== utente
                             join c in dbDati.clienti on o.codice equals c.cod
                               select new { CLIENTE = o.codice + " " + c.ragionesoc,  CITTA = c.Comune, PROVINCIA = c.prov }).Distinct().ToList();

            return Json(Cliente.Where(c => c.CLIENTE.ToUpper().Contains(term.ToUpper())).
                                Select(i => new
                                {
                                    RAGSOC = i.CLIENTE,
                                    CITY = i.CITTA,
                                    PROV = i.PROVINCIA
                                }).ToArray()

                                , JsonRequestBehavior.AllowGet);

        }

 $("#RagioneSociale").autocomplete({
                source: "/Controller/AutocompleteCliente",
                select: function (ev, ui) {
                    $("#RagioneSociale").val(ui.item.RAGSOC);
                    $("#Citta").val(ui.item.CITY);
                    $("#Provincia").val(ui.item.PROV);

                    return false;
                },
                minLength: 3
            });



provando a scrivere vedo creare una lista solo senza visualizzare il contenuto (vedo list-style-image: circle;)

Sembra filtrare correttamente i valori (cosi vedo dal debug) solamente non mostra nulla

Non ho errori a console e tutto sembra referenziato correttamente
Modificato da jjchuck il 07 giugno 2017 18.46 -

Inserendo l'esempio del libro nel progetto funziona correttamente:
public ActionResult AutocompleteComplex(string term)
        {
           return Json(
                      Enumerable.Range(0,10).
                      Select(c => new ClassePerAutoComplete { value = c.ToString(), label = term + c , label2 = term + c*2 }).ToArray(),
                      JsonRequestBehavior.AllowGet);
         }

@Html.TextBox("ComplexTextbox")
@Html.TextBox("ValueForComplexTextbox")
@Html.TextBox("ValueForComplexTextbox2")


    <script type="text/javascript">
        $(document).ready(function () {

            $("#ComplexTextbox").autocomplete({
                source: "AutocompleteComplex",
                select: function (ev, ui) {
                    $("#ValueForComplexTextbox").val(ui.item.value);
                    $("#ComplexTextbox").val(ui.item.label);
                    $("#ValueForComplexTextbox2").val(ui.item.label2);
                    return false;
                },
                minLength: 3
            });

        });
    </script>


Modificato da jjchuck il 08 giugno 2017 08.58 -
944 messaggi dal 11 febbraio 2013
Se interessa a qualcuno ho risolto cosi anche se mi sono allontanato un po dall'esempio del testo

 $("#RagioneSociale").autocomplete({
                    source: function (request, response) {
                        $.ajax({
                        url: "/NomeController/AutocompleteCliente/",
                        type: "GET",
                        dataType: "json",
                        data: { term: request.term },
                        success: function (data) {
                            response($.map(data, function (item) {
                                return {
                                    label: item.RagioneSociale + " - " + item.Citta, value: item.RagioneSociale, extravalue: item
                                };
                            }))
                        }
                    })
                },
                select: function (event, ui) {
                    $("#Citta").val(ui.item.extravalue.Citta);
                    $("#Provincia").val(ui.item.extravalue.Provincia);
                },

                minLength: 3
            });

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.