2011-01-25 5 views
3

ASP.NET Wizard Control을 평가하는 중입니다. 서로 다른 단계에서 데이터를 수집하고 데이터의 유효성을 검사해야하는 경우 데이터 요약을 표시 할 수 있어야합니다.ASP.NET Wizard 컨트롤의 단점

누구든지이 컨트롤을 사용하고 어떤 문제가 발생했는지 알고 싶습니다. 이 컨트롤에 사용 제한이 있습니까?

답변

1

개인적으로 나는 마법사 컨트롤을 좋아하지 않습니다. 그것의 아주 단단한 및 나는 그것을 사용하기 아주 좋았던 찾아 내지 않았다. 그때부터는 내 마법사의 각 단계마다 각 뷰의 User 컨트롤과 함께 MultiView 컨트롤과 UpdatePanel을 사용했습니다. 이렇게하면 완전히 유연해질 수 있습니다.

MultiView 방식을 사용하면 마법사의 모든 단계를 디자이너에서 쉽게 볼 수 있습니다.

이것은 컨트롤에 대한 나의 옵션입니다. 처음 방문했을 때 많은 기회를주지는 못했습니다.

3

마법사 컨트롤을 사용하면 많은 배관 작업 시간을 절약 할 수 있지만 사용법을 잘 배우면 저장 한 배관 작업 시간보다 많은 비용이 발생할 수 있습니다. 재사용을 계획하고 있다면, 고유성에 대해 배우기위한 초기 투자가 가치가있을 것입니다.

사이드 바에 표시된 단계가 현재 진행중인 단계와 그 시점까지 수행 한 단계에 따라 마법사를 만들었습니다. 다음 또는 이전을 누를 때가는 단계도 동적으로 결정됩니다.

이를 구현하기 위해 단계를 숨기고 단계를 추가 및 삭제하는 방법에 대해 많은 내용을 읽었습니다. 후자는 나를 ViewState로 깊은 물로 이끌었습니다. 가치가있는 부분에 대해서는 기본 접근 방식을 사용합니다.

단계 ID (및 설정된 경우 제목)를 빈 문자열로 설정하여 사이드 바에 표시 할 단계를 제어 할 수 있습니다. 나는 그 다음 단계는 상대적으로 독립적 인 경우에, 당신은 같은 루틴을 호출하여 SideBarButtonClick, PreviousButtonClick 및 NextButtonClick 이벤트를 처리 할 수 ​​

For i = intCREDENTIALS To intADDITIONAL_INFORMATION 
    Wizard1.WizardSteps(i).ID = IIf(Wizard1.ActiveStepIndex < i, "", arrWizardSteps(i)) 
    Next 

사용, 정수 상수로 정의 단계 arrWizardSteps의 이름() 내 단계를 가지고있는 전환을 만들기 위해 클릭 한 단추와 관계없이 현재 단계를 벗어나 다음 단계로 넘어가는 것을 처리하도록 구성합니다. 예를 들어, 루틴은 현재 단계의 컨트롤에 의해 캡처 된 데이터를 저장하고 일부 데이터를 다음 단계의 컨트롤에로드 할 수 있습니다.

이러한 이벤트를 처리하는 경우 ActiveStepIndex를 직접 변경해야 할 수 있습니다. 당신이 e.Cancel = true를 핸들러에 설정하지 않는 한, 마법사는 그것을 변경하지 않으면 ActiveStepIndex를 증가/감소시킬 것입니다 (e는 핸들러에 대한 WizardNavigationEventArgs 인수입니다).

단계를 숨기기위한 코드가 대상 단계를 알아야하는 경우 해당 지점에서 마법사가 다음 단계로 이동하고 그 내용을 알게되므로 해당 단계를 PreRender에 넣어야합니다.