2013-04-11 2 views
0

콘텐츠 페이지 및 사용자 컨트롤이있는 마스터 페이지를 사용하는 응용 프로그램이 있습니다. 사용자 정의 컨트롤 중 하나에는 다른 사용자 정의 컨트롤이 있습니다 (알고 있겠지만, 이것은 초기 개념입니다). 이 사용자 정의 컨트롤은 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 요청에서 열리지 않게하려면 어떻게합니까?

답변

0

방금 ​​해결책을 찾았습니다. 그것은 내 얼굴 앞에 있었다. RadWindowManager에 EnableViewState="false"을 설정하면이 문제가 발생하지 않았습니다. 아주 간단합니다. 그것이 누군가를 돕기를 바랍니다.

+1

http://www.telerik.com/community/forums/aspnet-ajax/window/opening-radwindow-from-the-server.aspx에서이 사례를 자세히 설명합니다. :) – rdmptn

관련 문제