2016-02-03 4 views
0

Мне нужно загрузить файл. в то время как файл загружается, мне нужно показать индикатор выполнения. но когда я нажимаю на кнопку загрузки в UpdatePanel файл в FileUpload исчезает, когда я добавить триггер файл будет загружен, но индикатор не покажет вот мой кодЗагрузить файл отсутствует

<%@ Page Title="" Language="C#" MasterPageFile="~/site.Master" AutoEventWireup="true" CodeBehind="upload.aspx.cs" Inherits="fix_asset.upload" %> 
 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
 
    <style type="text/css"> 
 
     .auto-style2 { 
 
      height: 23px; 
 
     } 
 
    </style> 
 
</asp:Content> 
 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
 
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
 
     <ContentTemplate> 
 
      <table style="margin:auto; padding-top:50px"> 
 
       <tr> 
 
        <td style="font-weight: 600; font-size: large; background-color: #0000FF; border: thin solid #000000"> 
 
         UPLOAD MASTER FILE 
 
        </td> 
 
       </tr> 
 
       <tr style="border: thin solid #000000; background-color: #DBD5FD;"> 
 
        <td> 
 
         <table> 
 
          <tr> 
 
           <td style="width:100px"> 
 
            Location 
 
           </td> 
 
           <td> 
 
            <asp:FileUpload ID="FileUpload1" runat="server" /> 
 
           </td> 
 
           <td style="width:100px"> 
 
            <asp:Button ID="Button1" runat="server" Text="Upload" OnClick="Button1_Click" OnClientClick="uploadfile()" style="width:100px" /> 
 
           </td> 
 
           <td style="width:100px"> 
 
            <asp:Button ID="Button2" runat="server" Text="Sampling" OnClick="Button2_Click" style="width:100px" /> 
 
           </td> 
 

 
          </tr> 
 
          <tr> 
 
           <td colspan="4" style="text-align:center" class="auto-style2"> 
 
            <asp:Label ID="lblNotification" runat="server" Text=""></asp:Label> 
 
           </td> 
 
          </tr> 
 
         </table> 
 
        </td> 
 
        </tr> 
 
      </table> 
 
      <asp:HiddenField ID="HiddenField1" runat="server" /> 
 
      <asp:Button ID="Button4" runat="server" Text="Button" style="visibility:hidden" OnClick="Button4_Click" /> 
 
      <asp:HiddenField ID="HiddenField2" runat="server" /> 
 
      <br /> 
 
      <hr /> 
 
      <br /> 
 

 
     </ContentTemplate> 
 
    </asp:UpdatePanel> 
 
       <table style="margin:auto; padding-top:50px; width:560px; border-collapse: collapse;"> 
 
       <tr style="font-weight: 600; font-size: large; background-color: #0000FF; border: thin solid #000000"> 
 
        <td colspan="3" >VLOOK UPLOAD</td> 
 
       </tr> 
 
       <tr style="border: thin solid #000000; background-color: #DBD5FD; padding:5px 5px 5px 5px"> 
 
        <td> 
 
         Location 
 
        </td> 
 
        <td> 
 
         <asp:FileUpload ID="FileUpload2" runat="server" style="width:100%" /> 
 
        </td> 
 
        <td> 
 
         <asp:Button ID="Button3" runat="server" style="width:100%" Text="Upload" onclick="Button3_Click" OnClientClick="uploadfile2()" /> 
 
        </td> 
 
       </tr> 
 
       <tr> 
 
        <td colspan="3"> 
 
         <asp:Label ID="lblNotification2" runat="server" Text=""></asp:Label> 
 
        </td> 
 
       </tr> 
 
       
 
      </table> 
 
    <script> 
 
     function uploadfile() { 
 
      document.getElementById('<%= HiddenField1.ClientID%>').value = document.getElementById('<%= FileUpload1.ClientID%>').value; 
 
     } 
 
     function uploadfile2() { 
 
      document.getElementById('<%= HiddenField2.ClientID%>').value = document.getElementById('<%= FileUpload2.ClientID%>').value; 
 
     } 
 
    </script> 
 
</asp:Content>

ответ

0

AJAX панель обновления используется для предотвращения полной обратной передачи страницы. Используя панель обновления, мы можем иметь частичную обратную передачу страницы. Частичная постбэк выполняет следующие

1.Improves производительность приложения

2.Decrease время загрузки страницы приложения

3.Decreases туда и обратно между приложением и сервером

4. Только раздел на веб-странице, который необходимо обновить, получает обратную передачу

Мы знаем, что мы можем загрузить файл на сервер с помощью управления загрузкой файлов. Однако, если мы используем управление загрузкой файлов внутри панели обновления, это не сработает. Причина этого в том, что управление загрузкой файлов не работает с асинхронной обратной обработкой.

добавить к вашей форме тега, а затем добавить триггер, как показано

<form id="form1" runat="server" method="post" enctype="multipart/form-data" > 
..... 
</ContentTemplate> 
<Triggers> 
<asp:PostBackTrigger ControlID = "uploadbuttonID"/>  
</Triggers> 
</asp:UpdatePanel> 
..... 
</form> 

см эту ссылку ...

http://www.aspsnippets.com/Articles/Display-Show-ASPNet-AJAX-UpdateProgress-with-UpdatePanel-PostBackTrigger.aspx

+0

, когда я добавить postbacktrigger файл будет загружать, но индикатор выполнения не используется, когда я удаляю файл postbacktrigger, который будет загружаться, не получит. – Vic

+0

, пожалуйста, обратитесь к этой ссылке, я добавил onbottom ответа. Это может помочь вам работать с индикатором прогресса, а также с помощью триггера обратной передачи –

Смежные вопросы