2008-12-17 3 views
0

자식 페이지의 코드 숨김에서 부모 페이지의 코드 숨김에서 메서드를 호출하는 가장 좋은 방법은 무엇이 될까요? ASP.NET 2.0 웹 사이트 모델에서?자식 페이지 코드에서 부모 페이지 코드 숨김 메서드 호출 - ASP.NET 2.0 페이지 상속 모델

시나리오 : 사용자가 상위 페이지의 링크를 클릭하여 하위 페이지의 데이터 레코드 세부 정보를 봅니다 (상위 및 하위 페이지는 별도의 페이지 임). 사용자가 클라이언트 페이지의 데이터를 수정합니다. 하위 페이지에서 업데이트를 처리하면 하위 페이지가 닫히고 업데이트를 반영하도록 상위 페이지를 리 바인드해야합니다.

나는 비슷한했지만 그것은 부모 페이지에 포함 된 사용자 컨트롤에서 상위 페이지를 호출했다

if(Page.GetType().ToString().Contains("ASP.Default_aspx")) 
{ 
    MethodInfo MyMethod = this.Parent.TemplateControl.GetType().GetMethod("MyMethod"); 
    MyMethod.Invoke(this.Page, null); 
    MyMethod = null; 
} 

업데이트 : 아이 때문에 뒤에있는 코드에서이 작업을 수행해야 데이터가 업데이트 된 후 페이지가 닫힙니다.

+0

나는 (HTTP 다음 [솔루션]을 수행하여이 작업을 수행 할 수 있었다 ://stackoverflow.com/questions/376404/load-an-aspnet-20-aspx-page-using-systemreflection#376646) –

답변

1

가장 쉬운 방법은 다중보기 또는 일부를 사용하여 한 페이지에서 모든 것을하는 것입니다. 상위 페이지의 URL을 변경하는

document.opener.location.href = "url"; 

를 호출 할 수 있습니다 자바 스크립트와 그를

기타. 쿼리 문자열에 내용을 그대로 두거나 붙여 넣을 수 있습니다. Page_Load에있는 값을 사용하여

0

모달 팝업에서 하위 페이지를 여는 경우 상위 페이지에서 window.returnValue에 액세스 할 수 있습니다. JavaScript를 통해) 호출 한 다음 페이지 새로 고치기 또는 Ajaxy 리 바인드 호출을 호출합니다.

모달 팝업에서 값을 반환하고 부모 페이지에서 그 값을 기반으로하는 작업을 수행하는 방법은 this page을 확인하십시오.

그러나 옵션이있는 경우 편집 양식을 별도의 페이지에서 열지 않을 것입니다. 나는 사용자 정의 컨트롤에 편집 폼을 넣고 라 라이트 스타일을 보여 주거나 숨 깁니다.

0

정확히 원하는지 확실하지 않지만이를 위해 교차 게시를 사용할 수 있습니다. 이렇게하면 하위 페이지의 ViewState에 액세스 할 수있는 장점을 사용하여 하위 페이지에서 상위 페이지로 다시 게시 할 수 있습니다. 이렇게하려면 단추의 PostBackUrl 속성을 자식 페이지로 설정합니다. 그런 다음 상위 페이지에서 PreviousPage 속성에 액세스하여 하위 페이지에서 값을 검색 할 수 있습니다. Parent.aspx Page_Load 이벤트에서 다음

<asp:Button ID="Button1" runat="server" Text="Update data" 
     PostBackUrl="~/Parent.aspx" onclick="Button1_Click" /> 

: 자식 페이지에서 버튼 등이 그래서

protected void Page_Load(object sender, EventArgs e) { 

    if (IsCrossPagePostBack) { 

     Page prevPage = this.PreviousPage; 
     string myVal = prevPage.FindControl("myTextBox1").ToString(); 
     string myVal2 = prevPage.FindControl("myTextBox2").ToString(); 
     //etc 

    } 
} 
관련 문제