2013-04-06 5 views
5

これまでは、2つのコントロール(FileUploadと追加ボタン)を使用してきました。 ファイルがfileUploadコントロールで選択された後、ユーザーは保存ボタンを押して選択を受け入れなければなりませんでした。「Browse」をクリックした直後にFileUploadコントロールのアップロードファイルを作成する方法は?

ここでは、ボタンのコードです:

protected void Button1_Click(object sender, EventArgs e) 
    { 
     if (FileUpload1.HasFile) 
     { 
      FileUpload1.SaveAs(Server.MapPath("~/file.jpg")); 
      Label1.Text = Server.MapPath("~/file.jpg"); 
      Image1.ImageUrl = "file.jpg"; 
     } 
    } 

は、私がそのボタンを使用して回避する方法があるかどうかを思ったんだけど、そうするFileUploadコントロールのボタンが追加ボタンの仕事をするでしょう。

答えて

4

FileUploadコントロールは、ブラウザで<input type="file>をレンダリングします。 javascript changeイベントを使用してアップロードをトリガーすることができます。

<body onload="body_onload()"> 

そして、あなたのイベントハンドラ内でこのコードを追加します:

<script type="text/javascript"> 
    function body_onload() 
    { 
     ... 

     $get('<%=FileUpload.ClientID%>').onchange = function() { 
      $get('<%=this.Page.Form.ClientID%>').submit(); 
     }; 
    } 
</script> 

または実行する

まず、あなたがあなたのページのbodyに登録loadイベントハンドラを持っていることを確認してくださいこれは純粋なjQueryを使用して、これをページのheadに入れます(まだjQueryが含まれていない場合):

その後
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 

(それぞれ、自分のFileUploadForm要素のidので#fileUpload1#form1を置き換える)イベントにバインドするために、このコードを使用します。

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#fileUpload1").change(function() { 
      $("#form1").submit(); 
     }); 
    }); 
</script> 
関連する問題