2016-06-14 9 views
0

jQuery UIオートコンプリートを使用しており、部分的に機能しています。結果が見つからない場合は、「結果が見つかりません」と表示されます。メッセージは問題なく表示されますが、結果が見つかると、各オプションの空のボックスが表示され、テキストは表示されません。jQuery UIのオートコンプリートで選択リストにテキストが設定されない

enter image description here

私がデバッグしていると、そこにデベロッパーコンソールに示すものは何もありませんし、私は私のASP.Netコードに掘ると、有効なデータが引か取得されて見ることができます。私はここで何が欠けていますか?

のjQuery:

$("#ProjectSearchBox").autocomplete(
{ 
    minLength: 3, 
    source: function(request, response) 
    { 
     $.ajax(
     { 
      cache: false, 
      type: "GET", 
      url: "/Timesheet/ProjectCodes?searchTearm=" + request.term, 
      success: function(data) 
      { 
       response(data); 
      }, 
      error: function(xhr) 
      { 
       alert("Error getting project list, please try again later."); 
      } 
     }); 
    } 
}); 

HTML:

<li> 
    <label for="ProjectSearchBox">Search Project:</label> 
    <input type="text" id="ProjectSearchBox" name="ProjectSearchBox" list="ProjectList" /> 
</li> 

ASP.Netコード:

var projects = db.ProjectCodes 
         .Where(project => project.Code.ToLower().Contains(searchTearm.ToLower()) || project.Description.ToLower().Contains(searchTearm.ToLower())) 
         .Select(project => new 
         { 
          projectInfo = string.Concat(project.Code, " | ", project.Description) 
         }).ToList(); 

    if (projects.Count == 0) 
    { 
     return Json(new { responseText = "No match found." }, JsonRequestBehavior.AllowGet); 
    } 
    else 
    { 
     return Json(projects, JsonRequestBehavior.AllowGet); 
    } 

答えて

2

の代わりに配列または文字列を返す、あなたのコントローラは、オブジェクトの配列を返します"projectInfo"という文字列プロパティを使用します。オートコンプリート関数は、それ以上の命令なしにこれを解析する方法を知らない。サーバーコードの選択行を次のように変更します。

.Select(project => string.Concat(project.Code, " | ", project.Description)) 
+0

これは問題でした。ありがとう – Matthew

関連する問題