Link to home
Start Free TrialLog in
Avatar of Moti Mashiah
Moti MashiahFlag for Canada

asked on

Asp.net mvc 5

hi Guys,

I have mvc application and I implemented autocomplete that return params with ajax:

see my code:
 $("#Search").autocomplete({
                    source: function (request, response) {
                        $.ajax({
                            url: "/Categorymanager/Autocomplete",
                            type: "POST",
                            dataType: "json",
                            data: { Prefix: request.term },
                            success: function (data) {
                                response($.map(data, function (item) {
                                    return {
                                        label: item.Deptname + item.Categoryname,
                                        Value: item.Value
                                    };
                                }))
                            }
                        })
                    },

                    minChars: 2,
                    minLength: 2,
                    autoFill: true,
                    select: function (event, ui) {
                        $("#Search").val(ui.item.Value);
                        return false;
                    },
                    messages: {
                        noResults: "", results: ""
                    }
                }).data("ui-autocomplete")._renderItem = function (ul, item) {
                    return $("<li></li>")
                    .data("item.autocomplete", item)
                    .append("<div><strong style='color:red;'>" + item.label + "</strong><strong style='color:blue;'>" + "|" + " " + item.Categoryname + "</strong></div>")
                    .appendTo(ul);
                }
                

            });
        });

Open in new window


After I'm getting the value into the text box I would like to click on the GO button and send this value to the controller with ajax.
Here is my text:
User generated image
Can somebody give me an idea how to do it.
ASKER CERTIFIED SOLUTION
Avatar of leakim971
leakim971
Flag of Guadeloupe image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Moti Mashiah

ASKER

yes, that could be a good idea, but look at my autocomplete is return just one value to the textbox $("#Search").
I want to show in my textbox just one value but return 4 values to the method you just posted.

look at this code in my autocomplete method:
select: function (event, ui) {
                        $("#Search").val(ui.item.Value);
                        return false;
                    },
this is my server side code:
public JsonResult Autocomplete(string Prefix)
        {
            ALThompsonCRMEntities ald = new ALThompsonCRMEntities();
            RMSmasterHQEntities db = new RMSmasterHQEntities();

            var search = ald.CatManSearchAutocomplete(Prefix)
                .Select(a => new Searchresult
                {
                    Deptname = a.DeptName,
                    Categoryname = a.CategoryName,
                    Value = a.DeptName
                }).ToList();

            return Json(search, JsonRequestBehavior.AllowGet);
        }

Open in new window


I can return more than one value to the property value, but I don't want to show more than one value in the textbox.

I hope you got my point.

THanks,
thx