2016-08-04 6 views
0

Ich suche über das Internet, um die Datei im Update-Panel zu verwenden. Ich möchte die Seitenaktualisierung vermeiden, wenn ich auf den Datei-Upload klicke. Also habe ich meine Codes in Update-Panel mit einem Trigger aber immer noch erfrischend ...Datei-Upload im Update-Panel noch erfrischend

Codes:

<asp:ScriptManager runat="server" ID="ScriptManager1" EnablePartialRendering="true"></asp:ScriptManager> 
       <asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional" ChildrenAsTriggers="true"> 
        <Triggers> 
         <asp:PostBackTrigger ControlID="imageUploadAction" /> 
        </Triggers> 
        <ContentTemplate> 
         <div class="fileUpload btn btn-primary btn-block btn-lg"> 
          <span>آپلود</span> 
          <asp:FileUpload CssClass="inputfile" runat="server" ID="imageUpload" /> 
         </div> 
         <br /> 
         <div class="alert alert-info" runat="server" id="imageAlert"></div> 
         <div style="border-bottom: 1px solid #ddd;"></div> 
         <br /> 
         <asp:Button runat="server" ID="imageUploadAction" CssClass="btn btn-block btn-lg btn-success" Text="ارسال" OnClick="imageUploadAction_Click" /> 
        </ContentTemplate> 
       </asp:UpdatePanel> 

Hinter Code:

protected void imageUploadAction_Click(object sender, EventArgs e) 
{ 
    Debug.WriteLine("Uploading" + " " + imageUpload.HasFile); 
    Boolean fileOK = false; 
    String path = Server.MapPath("~/Assets/image/posts/"); 
    if (imageUpload.HasFile) 
    { 
     String fileExtension = System.IO.Path.GetExtension(imageUpload.FileName).ToLower(); 
     String[] allowedExtensions = { ".jpg", ".png" }; 
     for (int i = 0; i < allowedExtensions.Length; i++) 
      if (fileExtension == allowedExtensions[i]) 
       fileOK = true; 
    } 

    if (fileOK) 
    { 
     try 
     { 
      int last = getLastImage() + 1; 
      string link = path + last + ".jpg"; 
      imageUpload.PostedFile.SaveAs(link); 
      db.insertPhoto(link); 
      imageAlert.InnerText = "فایل آپلود شده است ، کد عکس : " + last; 
     } 
     catch (Exception ex) 
     { 
      ExceptionUtility.LogExceptionNotFailure(ex); 
      Debug.WriteLine(ex.ToString()); 
      imageAlert.InnerText = "فایل نمیتواند آپلود شود."; 
     } 
    } 
    else 
    { 
     imageAlert.InnerText = "فایل مجاز نیست"; 
    } 
} 

Antwort

0

Sie Einrichtung der imageUploadAction Taste ein PostBackTrigger (also nicht asynchron) zu sein, der ein vollständiges Neuladen der Seite bewirkt.

Beachten Sie, dass es keine Möglichkeit gibt, einen normalen Uploader mit einem UpdatePanel zu verwenden. Wenn Sie wirklich asynchronen Datei-Upload wünschen, müssen Sie ziemlich viel Code sowohl auf der Client- als auch auf der Server-Seite implementieren.

einen Blick auf FlowJs Nehmen Sie hier https://github.com/flowjs/flow.js mit einer Demo hier http://flowjs.github.io/ng-flow/

Hoffnung, die

hilft