2010-03-10 6 views
1

JQuery의 자동 완성 기능을 사용하고 페이지의 배열 값을 하드 코딩하면 훌륭하게 작동합니다. 하지만 내가해야 할 일은 웹 서비스 나 컨트롤러 내부의 공용 함수에서 배열 값을 얻는 것입니다. 나는 여러 가지 방법으로 시도해 보았지만 제대로 작동하지 않는 것 같습니다. 내가 가지고있는 가장 먼 거리는 긴 문자열로 데이터를 가져 오는 것이고, 자동 완성 결과가 제공되면 일치하는 긴 문자열이되고, 나는 그 이유를 이해한다.Jquery 자동 완성 플러그인 호출

$("#TaskEmailNotificationList").autocomplete("http://localhost/BetterTaskList/Accounts/registeredUsersEmailList", { 
    multiple: true, 
    mustMatch: false, 
    multipleSeparator: ";", 
    autoFill: true 
    }); 

누구에게이 문제가 발생 했습니까? C#을 사용하고 있습니다.

업데이트 : 아래 코드는 앞으로 나옵니다. 이제 배열이 반환되지만, 내 페이지에서 잘못 처리하고있는 것 같습니다.

var emailList = "http://localhost/BetterTaskList/Account/RegisteredUsersEmailList"; 

    $("#TaskEmailNotificationList").autocomplete(emailList, { 
    multiple: true, 
    mustMatch: false, 
    multipleSeparator: ";", 
    autoFill: true 
    }); 

[HttpGet] 
    public ActionResult RegisteredUsersEmailList() 
    { 
     BetterTaskListDataContext db = new BetterTaskListDataContext(); 
     var emailList = from u in db.Users select u.LoweredUserName; 
     return Json(emailList.ToList(), JsonRequestBehavior.AllowGet); 
    } 

답변

2

먼저 구문이 이전과 다릅니다. 당신이 jQuery를 UI의 일부인 자동 완성 위젯을 사용하는 경우, 자동 완성 구문은 다음과 같다 :

$("#input1").autocomplete({ 
     source: "http://localhost/Whatever" 
}); 

을 그래서 어쩌면 당신이 jQuery를 UI에 포함되어있는 자동 완성 기능을 사용하지 않는?

당신이있는 경우에 ...
the documentation for jQuery UI autocomplete에 따르면, 출처는 세 가지 중 하나 일 수 있습니다. 배열, 문자열 (URL) 또는 함수를 반환합니다. 배열이면 객체 또는 단어 일 수 있습니다. 개체의 경우 각각 label 또는 value 속성 또는 둘 모두를 노출해야합니다.

URL 인 경우 배열 형식 중 하나를 준수하는 JSON을 반환해야합니다. 예, 그것은 반환해야

[ "albatross", "bison", "cayman", "duck", ...] 

또는

[ { "label": "albatross", "value": "72" }, 
    { "label": "bison", "value": "24" }, 
    ... 
] 

위의 형식 중 하나에 맞지 않는 무언가를 검색하는 가능성이 높습니다. 나는 내가 잘못 아니에요 경우가 JQuery와 자동 완성 기능의 확장의이 자동 완성 플러그인 http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/을 사용하고 this answer

+0

도 참조하십시오. 당신이 내 문제에 대해 좀 더 밝혀 줄 것을 요청한 질문은 이제 제대로 구조화 된 배열을 반환하는 방법을 찾아야합니다. 감사. –

+0

아니, 당신은 틀렸어. bassistance 플러그인은 jQuery UI 플러그인의 확장이 아닌 다른 플러그인입니다. – Cheeso