2008-10-17 4 views
3

AJAX 콜백이 필요한 사용자 컨트롤을 구현하는 가장 좋은 방법은 무엇입니까?ASP.NET 사용자 컨트롤에서 AJAX 콜백 사용

내가 몇 가지 달성하고 싶다 :

  • 브라우저에서 수행 이벤트를 (예 : 드래그 앤 드롭)을을 사용하여 페이지에 코드를 유발하는 제어 이벤트를 발생시킬 수있는 AJAX 통지를 트리거 제어 (예 : 데이터베이스의 값 변경)를 수행해야합니다.
  • 텍스트 상자 아래에 자동 완성 드롭 다운을 채우는 것과 같은 일을 할 수있는 부분 업데이트 (업데이트 패널을 사용하지 않음)가 있습니다.
  • 충분히 일반적인 여러 페이지에 재사용 할 수있는 단일 사용자 제어를 구현하는 것이 유지하기 위해 반복적이고 어렵 기 때문에, 컨트롤에 다시 이벤트를 전달 페이지 자체 로직을 구현하는 데

jQuery를 클라이언트 측 물건의 대부분에 사용하고 있지만 실제 AJAX 호출의 경우 jQuery인지 ASP AJAX 라이브러리인지는별로 신경 쓰지 않습니다.

실제로 클라이언트 측 스크립트에서 쉽게 호출 할 수있는 사용자 정의 컨트롤의 PageMethod가 무엇이 가장 좋을까요. 불행히도, 내가 아는 한, 페이지 메서드는 사용자 컨트롤에서 작동하지 않습니다.


내가 예를 들어 자동 완성 제어를 사용합니다

:

내가 페이지에 자동 완성 제어를 넣을 수 있어야하고, 다음 페이지 코드에서, 예 한 :

Public Sub HandleLookup(ByVal input As String, ByRef list As List(Of String) Handles MyControl.LookupEntries 
    list = New List(Of String) 
    ' Query database for list of items.. 
    For Each item as String in FullItemList 
    If item.StartsWith(input) then list.Add(item) 
    Next 
    Return list 
End Sub 

그리고 나머지는 아무것도하지 말아라. 나머지 코드는 usercontrol에 있어야한다.


참고로, 제가 작성하려고하는 컨트롤은 예를 들어 자동 완성보다 훨씬 더 구체적입니다. 그것들은 제 3 자 라이브러리에 존재하지 않으며 정말로 직접 제작할 수 있어야합니다.

답변

2

페이지에서 ICallbackEventHandler를 구현하십시오. JavaScript에서 페이지 함수를 다시 호출하는 간단한 방법입니다. 여기

좋은 튜토리얼입니다 :

http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=119

+0

감사합니다. 직관적이거나 강력하지 않습니다 (실제로는 하나의 매개 변수 (문자열) 만 허용합니다). 문자열을 인코딩/디코딩하고 여러 "함수"를 시뮬레이션 할 수있는 라이브러리를 작성해야했습니다. 하지만 작동하며 모든 것이 하나의 컨트롤에 포함되어 있습니다. – gregmac

+1

미래의 사람들에게주는주의 사항 :이 작업을 수행 할 수도 있지만 이것을 고려하는 경우 웹 양식을 스크랩하고 웹 작업을 수행해야합니다. MVC 또는 유사한 프레임 워크를 사용하여 직접 작성하십시오. 나는 실제로 위의 응용 프로그램을 다시 작성하는 과정에 있습니다.내 의견; webforms는 웹에 상태가 있다고 가정하려고하지만 웹에는 상태가 없으므로 UI에서 끌어서 놓기 이외의 작업을 수행하면 항상 webforms가 문제를 일으킬 수 있습니다. – gregmac

0

당신은 체크 아웃 할 수 있습니다; 내가 가고있어 Ra-Ajax UserControl SampleRa-Ajax Drag and Drop

와 지식이 코드의 사용을 확인하려면 왼쪽에있는은 "코드"C 번호 아이콘을 클릭 결합 ...

관련 문제