2010-06-23 5 views
2

로그인/사용자 만들기 페이지에서 폼 인증을 사용하는 CreateUserWizard 컨트롤이 있습니다. 내가 몇 가지 추가 유효성 검사기를 추가 할 수 있도록 CreateUserWizardStep1을 사용자 정의했습니다.ASP.NET CreateUserWizard 컨트롤에서 자격 증명 텍스트 상자를 지울 수 없습니다.

컨트롤을 사용하여 사용자를 성공적으로 만들고 "완료 계정을 만들었습니다."가 표시됩니다. ActiveStepIndex = 0을 설정하여 다른 사용자를 만들 수있는 추가 단추를 추가했습니다. ActiveStepIndex를 올바르게 설정하는 동안 문제는 이전 사용자 계정 자격 증명을 유지합니다. 다음 코드를 사용하여 수동으로 제거하려고 시도하지만 여전히 고정되어 있습니다 ... 누구나 아이디어가 있습니까?

Protected Sub btnCreateAnotherUser_Click(ByVal sender As Object, ByVal e As System.EventArgs) 

    Me.cuwMain.ActiveStepIndex = 0 
    CleanCreateNewUserInput() 

End Sub 

Private Sub CleanCreateNewUserInput() 

    Dim txtUserName As TextBox 
    txtUserName = FindControlIterative(Me.cuwMain, "UserName") 
    txtUserName.Text = String.Empty 

    Dim txtPassword As TextBox 
    txtPassword = FindControlIterative(Me.cuwMain, "Password") 
    txtPassword.Text = String.Empty 

    Dim txtConfirmPassword As TextBox 
    txtConfirmPassword = FindControlIterative(Me.cuwMain, "ConfirmPassword") 
    txtConfirmPassword.Text = String.Empty 

    Dim txtEmail As TextBox 
    txtEmail = FindControlIterative(Me.cuwMain, "Email") 
    txtEmail.Text = String.Empty 

    Dim txtQuestion As TextBox 
    txtQuestion = FindControlIterative(Me.cuwMain, "Question") 
    txtQuestion.Text = String.Empty 

    Dim txtAnswer As TextBox 
    txtAnswer = FindControlIterative(Me.cuwMain, "Answer") 
    txtAnswer.Text = String.Empty 

End Sub 

텍스트 상자를 올바르게 찾았지만 디버거에서 실제로 값을 다시 설정하지는 않습니다.

생각하십니까?

답변

1

나는이 바보 게시물을 ... 느끼지만, 난 그냥 CreateUserWizard 컨트롤에 viewstate가 해제하고 그것을했다.

Daniel의 도움에 감사드립니다. 이제 ASP.NET이 정보를 저장하는 방법을 더 잘 이해하게되었습니다.

2

Response.Redirect(Request.Url.ToString(), true)으로 전화하면 어떻게됩니까? 그것은 당신을 위해 모든 것을 정리해야합니다.

FindControlIterative 호출의 재귀 적 특성은 찾고자하는 모든 컨트롤에 대한 제어 계층을 드릴 다운해야하기 때문에 코드를 실행하는 데 비용이 많이 든다.

코드의 문제는 다음과 같습니다. 마법사 컨트롤에서 ViewState는 텍스트 상자와 같은 컨트롤에 대한 수정 된 값을 저장하지 않습니다. 이러한 컨트롤은 IPostBackDataHandler 인터페이스를 구현합니다. LoadPostBackData 이벤트는 컨트롤의 VALUES가 HTTP POST 헤더 ... 양식에서로드하는 페이지 수명주기에서 실행됩니다. 클라이언트가 다시 제출하는 ...

HTTP POST 헤더를 지우면 통제 값?

새로운 HTTP POST 헤더의 새로운 요구의 결과는 ... 단순히 버튼 클릭 이벤트 처리기에서이 작업을 수행 :

Response.Redirect를 (Page.Request.Url.ToString());

이렇게하면 마법사의 1 단계로 이동하므로 wiz.MoveTo (wiz.WizardSteps [0])도 수행하지 않아도됩니다. 콘라드에

신용 - ASP.Net Wizard - How to clear contents of web controls

+0

그게 효과가 있지만, "나는 동의해야합니다."개인 정보 보호 정책 JavaScript 팝업을 표시할지 여부를 결정하는 플래그로 사용하는 숨겨진 필드를 숨 깁니다. 원본 코드가 잘못되었습니다. – bulltorious

+0

값이 설정된 hpw에 대한 편집 된 답변보기. 숨겨진 필드 값을 저장 한 다음 SessionState 또는 URL (민감하지 않은 경우)에 다시 페이지에 전달해야 할 수 있습니다. –

관련 문제