2012-12-03 4 views
0

진정하십시오 ... 나는 이것에 초보자입니다.AjaxControlToolkit AutoCompleteExtender ... linq 쿼리를 채우는 방법?

좋아, 필자는 내 웹 페이지에 AutoCompleteExtender를 추가했습니다. 사용자는 검색 태그를 프로젝트에 추가 할 것이고 텍스트 상자가 이미 데이터베이스에있는 태그로 자동 완성되도록하고 싶습니다.

태그에 "레지스트리"가 없습니다. tagName과 projectID가있는 테이블 만. 따라서 tagName은 테이블에서 여러 번 반복 될 수 있습니다. 따라서 쿼리에 별개의 결과를 반환하기 만하면됩니다. (간단합니다.)

하지만 어떻게 AutoCompleteExtender에 묶을 수 있습니까? 여기

<asp:TextBox ID="TagNameTextBox" runat="server"></asp:TextBox> 

<ajaxToolkit:AutoCompleteExtender ID="TagNameTextBox_AutoCompleteExtender" 
runat="server"  
ServiceMethod="GetCompletionList" 
MinimumPrefixLength="2" 
EnableCaching="false" 
DelimiterCharacters="" 
Enabled="True" 
TargetControlID="TagNameTextBox"> 
</ajaxToolkit:AutoCompleteExtender> 

그리고 : 나는 잘

여기 영문 페이지 내 자동 완성 코드의 ... 등 ...

내가 참고로, 엔티티 프레임 워크를 사용하고, 웹 서비스에 정통한 아니에요 내 LINQ 쿼리 :

  var qrygettags = (from t in db.TagTables 
          select new { t.TagName }).Distinct().ToString(); 

은 나도, JQuery와 솔루션의 몇 가지 예를 찾았지만 그 형식으로 내 쿼리를 얻을하는 방법을 모르겠어요. 어떤 도움이나 아이디어라도 대단히 감사하겠습니다!

답변

1

글쎄, 난 주위에 사냥을 계속 하고이 겉보기 쉬운 해결책을 발견하고, 그것은 나를 위해 작동합니다. 영문 페이지

, 컨트롤에, 나는

ServiceMethod="GetTagNames" 

이 있고 CS 페이지에서 I는 페이지 로딩이 추가 :

[System.Web.Services.WebMethod] 
public static string[] GetTagNames(string prefixText, int count) 
{ 
    mydatabase db = new mydatabase(); 
    return db.TagTables.Where(n => n.TagName.StartsWith(prefixText)).OrderBy(n => n.TagName).Select(n => n.TagName).Distinct().Take(count).ToArray(); 
} 

는 희망이 밖에 다른 사람 도움이 될 것입니다 !