2013-04-06 31 views
5

Cho đến bây giờ, tôi đã sử dụng 2 nút điều khiển (FileUpload và nút bổ sung). Sau khi tập tin được chọn trong một điều khiển tập tin Tải lên, người dùng phải chấp nhận lựa chọn của mình bằng cách nhấn nút lưu.Làm cách nào để tạo tệp tải lên kiểm soát Tải lên ngay sau khi nhấp vào 'Duyệt qua'?

Dưới đây là mã nút của:

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"; 
     } 
    } 

Tôi đang tự hỏi liệu có một cách để tránh sử dụng nút đó, vì vậy nút điều khiển của FileUpload sẽ làm công việc của nút thêm của.

Trả lời

4

Điều khiển FileUpload hiển thị <input type="file> trong trình duyệt. Bạn có thể sử dụng sự kiện javascript change để kích hoạt tải lên.

Trước tiên hãy chắc chắn rằng bạn có một handler load kiện đăng ký tại body trang của bạn:

<body onload="body_onload()"> 

Và thêm mã này bên trong xử lý sự kiện của bạn:

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

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

Hoặc làm điều này bằng cách sử dụng jQuery tinh khiết, đặt nó trong head của trang của bạn (nếu bạn chưa có jQuery bao gồm):

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

Sau đó sử dụng mã này để ràng buộc vào sự kiện này (thay thế #fileUpload1#form1 với id của FileUploadForm của bạn yếu tố, tương ứng):

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#fileUpload1").change(function() { 
      $("#form1").submit(); 
     }); 
    }); 
</script> 
Các vấn đề liên quan