2009-02-02 2 views
1

각 단계에서 데이터 바인딩 된 컨트롤을 마법사 컨트롤로 사용할 수 있습니다. 이전 단계에 의존하기 때문에 한 번에 모두 데이터 바인딩 할 수 없습니다. 따라서 기본적으로 각 단계에서 얻은 것은 이전 단계의 데이터베이스에 저장하고 현재 단계를 초기화하는 것입니다.많은 데이터 바인딩을 사용하여 ASP.NET Wizard 컨트롤을 구성하는 방법

내 코드를 효과적으로 구성하는 방법에 대한 권장 사항이 있습니까? 그것은 잘 작동하지만 매우 읽기 쉽지 않으며 매우 부서지기 쉽습니다.

EDIT : 마법사 제어 자습서의 대부분을 보았습니다. 그러나 그 중 아무 것도 내가하려는 것을 처리하지 못하는 것 같습니다. 특히 단계간에 데이터를 저장하고 검색해야하는 필요성과 단계를 다시 방문하면 동일한 데이터를 다시 검색하지 못하게하는 방법.

답변

0

당신이 해왔 던 것은 합리적이라고 생각합니다. 당신이 갖고있는 문제에 대해 더 구체적으로 설명해 줄 수 있습니까?

워크 플로가 점점 복잡해지면서 마법사 컨트롤에 대한 한 가지 사실은 워크 플로 상태와 마법사 SelectedViewIndex 간의 결합이 문제가되는 것이라고 생각합니다. 이런 이유로 나는 결국 그것들을 분리시킨다. 일반적으로 상태/통계 패턴을 사용합니다. 현재 워크 플로 상태가 적절한 마법사보기 색인을 결정하는 데 사용됩니다 (반대의 경우도 마찬가지 임).

상태 시스템을 구현하는 방법에 대한 예제가 필요한 경우 javacript를 제외하고 마법사 컨트롤과 같은 대화 상자를 탐색하는 테스트 응용 프로그램이 있습니다. http://main(dot)test.wishpot.com/WaveDataCollection.Frank/을 확인하고 CollectSamples.aspx 페이지로 이동 한 다음 소스를보고 GotoState 함수에서 검토를 시작하십시오.

상태 머신은 C#에서 약간 다른 연결을 갖습니다. 주 개체는 상태 핸들러의 고정 된 수를 가진 추상 클래스이며, 각 클래스는 각 클래스를 상속하며 각 핸들러를 구현합니다 (일부는 예외를 던질 수도 있음) . javascript를 사용하면 추상 상태 클래스가 필요하지 않습니다 ... 또한이 서버 측을 사용하면 데이터베이스에 저장된 상태 ID를 상태 클래스에 매핑 할 수 있어야합니다.

+0

반드시 문제는 아닙니다. 나는 그저 내가했던 결과를 얻는 데 필요한 솔루션의 복잡성에 대해 염려했다. 같은 목표를 달성하는 간단한 방법이 있는지 확실하지 않았습니다. 서버 컨트롤을 사용하여 상태 머신을 구현하는 데 대한 다른 정보/링크가 있습니까? –

+0

상태 머신 작성에 관한 가이드 ... 불행히도 내가 읽은 소개는 C 특정 (Miro Samek의 책)입니다. "Refactoring to Patterns"라는 책은 아마도 좋은 치료법을 가지고있을 것이지만, 그 특정 패턴을 잘 커버 하는지를 확인하기위한 사본이 없습니다. –

관련 문제