2011-01-12 47 views
0

私はファイルアップロードコントロールを持っており、これを不可視にしました。asp.netでfileuploadコントロールを起動するボタンのイベントをクリックします。

Buttonをクリックすると、そのファイルのアップロード制御にブラウズButtonを有効にしたいとします。

どうすればいいですか?

+0

ファイルアップロードコントロールが見えない場合は、アップロードするファイルをどのように選択するのですか? –

+0

概要はこちらhttp://www.quirksmode.org/dom/inputfile.html –

答えて

0

これはできないと思います。これは、スクリプトがユーザーインタラクションから目に見えない(または少なくともアップロードプロセスを起動する)可能性がある場合、セキュリティ上の問題となる可能性があります。


更新:

誰かが実際にdeveloped a solution to hide the upload controlようです。私が読んだところでは、JavaScriptを開発して使用するために多少の努力をしているようです。

個人的には、私はこれがすべてのプラットフォーム(BlackBerryまたはWindows Phoneを持っている人があなたのウェブサイトにアクセスしたと想像してください...)で動作することを保証することはできません。

+1

ご返信ありがとうございます。 – nnnn

+0

fileuploadコントロールを使用せずにボタンクリックイベントでファイルをアップロードできますか? – nnnn

+0

ファイルアップロードコントロール( ')によってファイルが(手動で)選択された後、JavaScriptを使用してアップロードを開始することができます。 –

1

最初に)あなたは2つのこと

1を行うために必要なファイルをアップロードするにはthis one

のようなファイルのアップローダーを作るファイルを選択します。 (参照ボタンをクリック)

2)サーバーに送信します。だから、最初のファイルが選択されているようthese.`

<script type="text/javascript" > 
function uploadImage() { 
    $('#MainContent_UploadButton').click() 
} 
function selectFile() { 
    $('#MainContent_FileUploadControl').click(); 
} 
</script> 

今すぐファイルアップロードコントローラは、すぐに自分自身をアップロード作る行うためのJavaスクリプトを書くことができます

を(アップロードボタンをクリックしてください)

<asp:FileUpload id="MainContent_FileUploadControl" runat="server" 
      onChange="uploadImage()" class="hidden"/> 

新しいボタンを作成し、クリックするとすぐにファイルを選択させます。

<asp:Button ID="MainContent_UploadButton" runat="server" Text="Upload File" 
      OnClientClick="selectFile(); return false;" /> 

最も重要な点は、onClientClickフィールドに "return false"を入れることです。ボタンのポストバックがブロックされ、ページを更新せずにファイルを選択できるようになります。

ここでcssを使用して不要なコンポーネントを非表示にすると、完了です。

0
<asp:FileUpload ID="FileUpload1" runat="server" style="display:none;"/> 
<input id="btnFileUpload" type="button" value="Add" runat="server" /> 

btnFileUpload.Attributes.Add("onclick", "document.getElementById('" + FileUpload1.ClientID + "').click();"); 
関連する問題