ASP.NET AJAX 컨트롤 도구 키트의 DynamicPopulate 컨트롤은 웹 서비스(또는 페이지 메서드)를 호출하고 결과 값을 페이지 새로 고침 없이 페이지의 대상 컨트롤에 채웁니다.
개요
ASP.NET AJAX 컨트롤 도구 키트의 컨트롤은 DynamicPopulate
웹 서비스(또는 페이지 메서드)를 호출하고 결과 값을 페이지 새로 고침 없이 페이지의 대상 컨트롤에 채웁니다. 이 자습서에서는 이를 설정하는 방법을 보여줍니다.
단계
우선 에서 호출 DynamicPopulate
할 메서드를 구현하는 ASP.NET Web Service가 필요합니다. 웹 서비스 클래스에는 내에 Microsoft.Web.Script.Services
정의된 특성이 필요합니다ScriptService
. 그렇지 않으면 ASP.NET AJAX는 웹 서비스에 대한 클라이언트 쪽 JavaScript 프록시를 만들 수 없으며, 이 프록시는 에 필요합니다DynamicPopulate
.
컨트롤이 각 웹 서비스 호출을 통해 컨텍스트 정보를 한 조각 보내기 때문에 DynamicPopulate
웹 메서드는 라는 문자열 contextKey
형식의 인수 하나를 예상해야 합니다. 다음 웹 서비스는 인수가 나타내는 contextKey
형식으로 현재 날짜를 반환합니다.
<%@ WebService Language="C#" Class="DynamicPopulate" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
[ScriptService]
public class DynamicPopulate : System.Web.Services.WebService
{
[WebMethod]
public string getDate(string contextKey)
{
string myDate = "";
switch (contextKey)
{
case "format1":
myDate = String.Format("{0:MM}-{0:dd}-{0:yyyy}", DateTime.Now);
break;
case "format2":
myDate = String.Format("{0:dd}.{0:MM}.{0:yyyy}", DateTime.Now);
break;
case "format3":
myDate = String.Format("{0:yyyy}/{0:MM}/{0:dd}", DateTime.Now);
break;
}
return myDate;
}
}
그런 다음 웹 서비스가 로 DynamicPopulate.cs.asmx
저장됩니다. 또는 컨트롤을 사용하여 getDate()
실제 ASP.NET 페이지 내에서 메서드를 페이지 메서드로 구현할 수 있습니다 DynamicPopulate
.
다음 단계에서는 새 ASP.NET 파일을 만듭니다. 언제나처럼 첫 번째 단계는 현재 페이지에 를 ScriptManager
포함하여 ASP.NET AJAX 라이브러리를 로드하고 제어 도구 키트가 작동하도록 하는 것입니다.
<asp:ScriptManager ID="asm" runat="server" />
그런 다음 나중에 웹 서비스 호출의 결과를 표시하는 레이블 컨트롤(같은 이름의 HTML 컨트롤 또는 <asp:Label
/>웹 컨트롤을 사용하는 instance)을 추가합니다.
<label id="myDate" runat="server" />
HTML 단추(서버에 대한 포스트백이 필요하지 않으므로 HTML 컨트롤)를 사용하여 동적 채우기를 트리거합니다.
<input type="button" id="Button1" runat="server" value="Load date (m-d-y)" />
마지막으로, 우리는 물건을 연결하는 컨트롤이 필요합니다 DynamicPopulateExtender
. 다음 특성이 설정됩니다(명백한 ID
특성과는 별도로 및 runat
="server"
).
TargetControlID
웹 서비스 호출에서 결과를 넣을 위치ServicePath
웹 서비스 경로(페이지 메서드를 사용하려는 경우 생략)ServiceMethod
웹 메서드 또는 페이지 메서드의 이름ContextKey
웹 서비스로 보낼 컨텍스트 정보PopulateTriggerControlID
웹 서비스 호출을 트리거하는 요소ClearContentsDuringUpdate
웹 서비스 호출 중에 대상 요소를 비울지 여부
보듯이 컨트롤에는 몇 가지 정보가 필요하지만 모든 것을 제자리에 놓는 것은 매우 간단합니다. 현재 시나리오에서 컨트롤에 DynamicPopulateExtender
대한 태그는 다음과 같습니다.
<ajaxToolkit:DynamicPopulateExtender ID="dpe1" runat="server"
ClearContentsDuringUpdate="true"
TargetControlID="myDate" ServicePath="DynamicPopulate.cs.asmx"
ServiceMethod="getDate"
ContextKey="format1" PopulateTriggerControlID="Button1" />
브라우저에서 ASP.NET 페이지를 실행하고 단추를 클릭합니다. 현재 날짜를 월-일-연도 형식으로 받게 됩니다.
단추를 클릭하면 서버에서 날짜가 검색됩니다(전체 크기 이미지를 보려면 클릭).