콘텐츠 페이지 및 사용자 컨트롤이있는 마스터 페이지를 사용하는 응용 프로그램이 있습니다. 사용자 정의 컨트롤 중 하나에는 다른 사용자 정의 컨트롤이 있습니다 (알고 있겠지만, 이것은 초기 개념입니다). 이 사용자 정의 컨트롤은 RadAjaxManagerProxy를 사용하며 RadWindow를 생성하는 컨트롤을 가지고 있습니다. 모든 것이 잘 작동합니다. 창에 일부 RadGrid에 DB 필드가 채워진 것을 보여준 다음 창을 닫습니다.RadWindow 클라이언트 측의 VisibleOnPageLoad 호출
이 모든 것은 서버 측 이벤트에서 RadWindow1.VisibleOnPageLoad = true
으로 수행됩니다. 창을 닫은 후에는 RadWindow1.VisibleOnPageLoad = false;
을 설정할 방법이 없으므로 AJAX 이벤트 (이 경우 다른 RadWindow를 보여줍니다)를 발생시키는 다른 컨트롤을 클릭 할 때 RadWindow가 다시 팝업됩니다.
우리 응용 프로그램의 다른 부분에서는 RadAindow의 OnClientClose 메서드를 통해 서버에 인수를 전달했습니다.이 메서드는 RadAjaxManager의 서버 측 OnAjaxRequest 이벤트를 호출하는 데 사용됩니다. 이것은 서버 측 이벤트를 발생하고 그래서 같이 속성을 설정할 수 있습니다
JS :
function WindowClose(sender, args) {
SendRequest("ArgumentName");
}
function SendRequest(requestName) {
var ajaxManager = $find("<%= RadAjaxManagerMain.ClientID %>");
ajaxManager.ajaxRequest(requestName);
}
C 번호 :
protected void RadAjaxManagerMain_AjaxRequest(object sender, AjaxRequestEventArgs args)
{
if (args.Argument == "ArgumentName")
{
RadWindow1.VisibleOnPageLoad = false;
}
}
하지만이 RadAjaxManagerProxy의 OnAjaxRequest 방법을 사용하고 있기 때문에 RadAjaxManager는 지원되지 않습니다.
나는이에 대한 몇 가지 옵션을 마련했습니다 난 아무데도 어떤 포럼이나 문서에서 찾을 수없는 클라이언트 측에
- 설정 VisibleOnPageLoad.
- 속성을 설정할 수 있도록 일종의 다른 이벤트를 서버에 전달하십시오.
어쩌면 완전히 다른 생각이 들거나 인식하지 못했을 수 있습니다. 나는 어떤 선택의 여지가 열려 있습니다. 이미 창을 닫을 때 해고되는 Javascript 메서드가 있습니다. 전체 포스트 백을 수행하지 않고 창을 닫을 수있는 방법을 찾을 수 없습니다.
RadWindow가 다른 AJAX 요청에서 열리지 않게하려면 어떻게합니까?
http://www.telerik.com/community/forums/aspnet-ajax/window/opening-radwindow-from-the-server.aspx에서이 사례를 자세히 설명합니다. :) – rdmptn