2009-12-12 6 views
0

저는 현재 ASP.NET과 C#을 사용하는 웹 기반 게임을하고 있습니다. 이전에는 다양한 게임 화면 (시작, 하이 스코어, 결과 등)을 기본 UpdatePanel 내에 중첩 된 개별 패널로 구성하고 게임이 진행됨에 따라 적절한 패널을 표시하거나 숨 깁니다. 그러나 나는 게임의 규모를 심각하게 과소 평가했으며 더 관리하기 쉬운 부분으로 나누어야 할 것입니다..aspx를 Panel/UpdatePanel에로드하기

이제 내 생각으로는 빈 UpdatePanel이있는 Main.aspx가 있고 다양한 스크린을 개별 .aspx 파일로로드합니다. 다른 WinForm을 만들고 현재 상위 폼에 추가 할 때 WinForms와 비슷합니다.

저는 코드 숨김에서이 ​​작업을 수행하는 방법을 찾으려고 노력해 왔지만 여전히 분실 상태입니다. Response.Redirect를 사용하여이 작업을 수행 할 수는 있지만 새 페이지가로드 될 때 일반적인 깜박임이 발생하므로 피하고 싶습니다.

나는 재미있는 것을 UFrame이라고 불렀다.하지만 코드 숨김 대신 HTML에서 작동하는 것처럼 보인다.

이 문제에 대한 도움이나 제안에 감사 드리며 이전에 질문을 받으면 사과드립니다. 고맙습니다.

편집 : womp의 대답과 관련하여 .ascx는 올바른 방향으로 나아가는 단계 인 것 같습니다. 내 Startscreen 컨트롤 컨트롤을 Main.aspx 내부에서 성공적으로 실행했습니다. 그러나 또 다른 문제가 발생했습니다. 버튼 클릭시 Main.aspx 내 패널에 다른 usercontrol을 추가하려고하면 화면이 공백 상태가됩니다.

protected void Btn_Arcade_Click(object sender, EventArgs e) 
    { 
     this.Parent.Controls.Add(LoadControl("Arcade.ascx")); 

    } 

난 그와 아무 잘못이 있다면 너무 잘 모르겠지만,이 경우 부모는 내가라는 것을 기본적으로 :

나는 Startscreen 컨트롤의 버튼이 이벤트 핸들러입니다 GameContentPanel은 Main.aspx의 UpdatePanel 내에 상주합니다.

Startscreen 대신에 처음으로로드하여 테스트 한 이후에 HTML을 푸딩하는 데 문제가 있다고 생각하지 않습니다. 모든 것이 정상적으로 나타났습니다.

또한 Main.aspx의 시작 부분에 두 컨트롤을 함께로드하려고 시도했으며 두 컨트롤 모두 올바르게로드되었습니다.

답변

1

"스크린"은 .ascx 사용자 컨트롤이 가능합니까? LoadControl("~/path/to/myControl.ascx")을 사용하여 패널에 사용자 정의 컨트롤을로드 한 다음 해당 컨트롤을 기본 페이지의 수명주기에 참여시킬 수 있습니다.

실제로 별개의 .aspx 페이지에 있어야하는 경우 iframe을 사용하거나 다른 방법을 생각해 볼 필요가 있습니다. Webforms 앱은 한 페이지/양식 컨텍스트 내에서 많은 일이 일어나도록 설계되었으며 여러 페이지로 컨트롤을 앞뒤로 전송하지 않습니다.

+0

빠른 답장을 보내 주셔서 감사합니다. 별도의 .aspx 페이지가 아니어도 다른 객체/클래스로 분리되어 있으므로 다른 프로그래머가 게임에 다른 모듈을 추가해야 할 때 전체 솔루션에 대해 신경 쓰지 않아도되고 다시 컴파일 할 필요가 없습니다 모두. 저는 ASP에 비교적 익숙하지 않아, .ascx가 어떻게 작동하는지 전혀 모르지만, 지금은 살펴 보겠습니다. 확실히 유망한 것 같습니다. 다시 한번 감사드립니다. – Kronon

관련 문제