2012-03-26 12 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(); 

私も試しました。今

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

、フォームに提出し、私はfuDocvisibleそうであればあるかどうかを確認する必要があり、例えば標準的なファイルアップロード処理を行います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属性の変更がポストバック中に保持されないということです。

可能な修正プログラムの1つは、fuDocコントロールの状態を格納する隠しフィールドを使用することです。

+0

ありがとうございましたcodrin、最初に投票されましたが、それが含まれているので、他を受け入れなければならなかった他の人が同様の問題を抱えている場合に役立つかもしれません。 –

関連する問題