2011-08-17 4 views
0

이것이 툴킷에 전달 된 값을 제어하는 ​​것은 이제 TextBox1_AutoCompleteExtender.ContextKey의 세션에서 useremail을 저장 한 페이지로드자동 제안 배열

protected void Page_Load(object sender, EventArgs e) 
    { 
     if 
      (Session["useremail"] == null) Response.Redirect("Home.aspx"); 
     else 
     { 
      Label8.Text = Session["useremail"].ToString(); 
     } 
     if (!Page.IsPostBack) 
     { 
      TextBox1_AutoCompleteExtender.ContextKey = Label8.Text; 
     } 
    } 

이다.

사용 방법 TextBox1_AutoCompleteExtender.ContextKey 값을 아래 메서드의 변수에 전달합니다.

[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()] 
    public static string[] GetCompletionList(string prefixText, int count, string contextKey) 
    { 

     string[] movies = { "Joey", "Joester", "Joker", "Joeic", "Joic", "Shrek II" }; 


     return (from m in movies where m.StartsWith(prefixText, StringComparison.CurrentCultureIgnoreCase) select m).Take(count).ToArray(); 
    } 

I 데이터베이스 테이블 사용자로부터 열을 전달하려는 그 대신 배열 값이 미리 정의 된 전달 제가 단지 이메일 ID 값을 필터링 할 수있는 (열 이름 FIRSTNAME이다). 도와주세요

+0

저는 혼란 스럽습니다. GetCompletionList 메서드를 호출하는 방법을 보여주는 코드를 게시 할 수 있습니까? –

답변

0

GetCompletionList (...) 메서드가 포함 된 웹 서비스에서 세션 상태를 활성화하여이 문제를 해결할 수 있으므로 ASP.NET 웹 응용 프로그램/웹 사이트와 동일한 방식으로 사용자의 전자 메일 주소에 액세스 할 수 있습니다. 대지.

기본적으로 웹 메서드에 대한 세션 지원이 해제되어 있습니다. WebMethod 속성의 EnableSession 속성을 true로 설정하여 각 웹 메서드에 명시 적으로 활성화해야합니다. 이 기능을 사용하면 ASP.NET에서 익숙해 진 것과 같은 방법으로 세션 상태에 액세스 할 수 있습니다.

[WebMethod(EnableSession = true), ScriptMethod()] 
public static string[] GetCompletionList(string prefixText, int count, string 
    contextKey) 
{ 
    var useremail = Session["useremail"] ?? null; 
    //... 
} 
WebMethodAttribute의 EnableSession 속성에

더 많은 정보는 여기에서 찾을 수 있습니다 : 예를 들어

http://msdn.microsoft.com/en-us/library/system.web.services.webmethodattribute.enablesession.aspx

은 알고 있어야 그 경우 웹 서비스의 고객 (소비자) 쿠키를 사용하여 세션 상태를 유지하고 HTTP 쿠키를 지원해야합니다. 현대적인 브라우저에 대해서는 문제가 없어야합니다 (귀하의 주 고객이라고 생각합니다).

웹 서비스에서 ASP.NET 세션 사용에 대한 추가 정보가 필요합니까? MSDN의 다음 링크로 이동하십시오.

http://msdn.microsoft.com/en-us/library/aa480509.aspx

+0

이 오류가 발생합니다 -> 비 정적 필드, 메서드 또는 속성 'System.Web.UI.Page.Session.Get'에 대한 객체 참조가 필요합니다 – rookie

+0

이것을 던지고있는 코드 줄을 복사/붙여 넣기 할 수 있습니까? 오류 및 어쩌면이 줄이 호출되는 상황에 대한 약간의 정보. –

+0

보호 된 무효 Page_Load (개체 보낸 사람, EventArgs 전자) { (Session [ "useremail"] == null) Response.Redirect ("Home.aspx"); else { Label8.Text = Session [ "useremail"]. ToString(); } if (! Page.IsPostBack) { TextBox1_AutoCompleteExtender.ContextKey = Label8.Text; } } – rookie