2012-03-26 1 views
0

내 코드 숨김에서 asp.net 컨트롤의 display 속성을 none으로 설정했습니다. 사용자가 문서를 업로드하고자하는 경우jQuery와 ASP.NET은 코드 뒤에 가시성을 제어합니다

내 페이지에서
fuDoc.Attributes("style") = "display:none;" 'fuDoc is a FileUpload control. 

, 그들은 jQuery를 사용하여, 나는() 다음과 같이 .show 사용하여 'block'display 속성을 설정 링크를 클릭;

$('#fuDoc').show(); 

나는 또한 시도했다; 양식 제출에 fuDocvisible 경우

$('#fuDoc').attr('style', 'display:block;'); 

지금, 나는 확인해야하고 만약 그렇다면, 예를 들어, 표준 파일 업로드 과정을 fuDoc 제어가 문제없이 HTML에 display:block로 설정되어 있지만 .. .HasFile 등 그러나

확인, 다음 asp.net 코드는 항상 그 이유는 무엇입니까

If fuDoc.Attributes("style") = "display:none;" Then 'always results to true 

진정한 생산? 어떤 도움을 주시면 감사하겠습니다.

참고 : FileUpload 컨트롤은 동적으로 만들어지지 않습니다.

답변

1

오히려는 FileUpload 페이지에 표시 여부를 감지에 의존하는 대신, 텍스트 상자 또는에 HiddenField을 포함 할 수 같은 :

<asp:TextBox id="txtIsFileUploadShown" runat="server" cssclass="txtisfileuploadshown" Text="0" style="display:none;" /> 

이 컨트롤의 값을 저장, 페이지에 표시되지 않습니다 0 기본적으로. 숨어 때

$('#fuDoc').show(); 
$(".txtisfileuploadshown").val('1'); 

: 당신은/파일 업로드를 보여 숨길 때마다

는,이 값을 변경하는 코드를 변경

다음
$('#fuDoc').hide(); 
$(".txtisfileuploadshown").val('0'); 

당신의 코드 숨김 게시물에 다시, 단순히 확인 :

If IsNumeric(txtisfileuploadshown.text) AndAlso Cint(txtisfileuploadshown.text)=1 Then 
    'Do HasFile validation here. 
End 
2

클라이언트에서는 style 특성 변경 사항이 다시 게시 중에 유지되지 않습니다.

가능한 수정 프로그램은 fuDoc 컨트롤의 상태를 저장하기 위해 hiddenfield를 사용하는 것입니다.

+0

감사합니다. codrin, 첫 번째로 투표했지만 다른 것을 받아 들여야합니다. 비슷한 문제가있는 다른 사람들에게 도움이 될 수 있습니다. –