Hi, have a problem with realization of autocomplete in a jQuery table, what I'm displaying using each loop... if I do it with an array inside my code, it works, bit from Database it showas error, have somebody any idea why?
What I have tried:
function loadWeekData() {
$.ajax({
type: "GET",
url: "/Home/JsonWeekEvents",
dataType: "JSON",
success: function (result) {
$.each(result, function (i, val) {
var trow = $('<tr/>').data("id", val.Id);
trow.append('<td style="padding:5px; width:100px; height:70px"></td>');
trow.append('<td valign="top" style="padding:2px; width:150px; height:100px">' +
'<div class="ui-widget">' +
'<input size="10" maxlength="10" id="tags" />' +
'<input type="button" id="addBtn" onclick="addEvent();" size="5" value="+" /><br/>' +
'<div style="text-align:center" id="desc_Num">' + val.Monday + '</div >' +
'</div >' +
'</td>');
tab.append(trow);
});
$("tr:odd", tab).css('background-color', '#C4C4C4');
$("#weekEvents").html(tab);
},
error: function () {
alert("Failed! Please try again.");
}
});
var tab = $('<table class=MyTable border=1 ></table>');
var thead = $('<thead></thead>');
thead.append('<th style="padding:5px">FSE' + " " + '</th>');
thead.append('<th style="padding:5px">Monday' + " " + '</th>');
thead.append('<th style="padding:5px">Tuesday' + " " + '</th>');
thead.append('<th style="padding:5px">Wednesday' + " " + '</th>');
thead.append('<th style="padding:5px">Thursday' + " " + '</th>');
thead.append('<th style="padding:5px">Friday' + " " + '</th>');
thead.append('<th style="padding:5px">Saturday' + " " + '</th>');
thead.append('<th style="padding:5px">Sunday' + " " + '</th>');
tab.append(thead);
tab.on("focus", "input[id='tags']", function (e) {
$("#tags").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("GetSearchValue","Home")',
dataType: "json",
data: { search: $("#tags").val() },
success: function (data) {
response($.map(data, function (item) {
return {
label: item.Title + ', ' + item.Description, value: item.Title,
Id: item.Id,
Title: item.Title,
Description: item.Description,
Location: item.Location
}
}));
},
error: function (xhr, status, error) {
alert("Error!");
},
});
}
});
});
My Controller:
public JsonResult GetSearchValue(string search)
{
List<Event> eventsList = new List<Event>();
using (EventsDBEntities db = new EventsDBEntities())
{
eventsList = db.Events.Where(x => x.Title.Contains(search)).ToList();
}
return new JsonResult { Data = eventsList, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}