2013-01-24 48 views
6

tôi đang cố gắng để có được rằng AjaxFileUpload -Control (được sử dụng trong ContentPage) hoạt động. Nhưng nó không cháy OnUploadComplete Sự kiện ở phía máy chủAjaxFileUpload không kích hoạt Sự kiện OnUploadComplete

Tôi đang sử dụng phiên bản 4.1.60919.0 của ControlToolkit. Tôi đã thử mọi thứ tôi tìm thấy trên internet.

Dưới đây chỉ là một vài bước sau:

  • Added enctype = "multipart/form-data" method = "post" vào-yếu tố hình thức trong MasterPage tôi
  • Nested các AjaxFileUpload vào một UpdatePanel với UpdateMode = Luôn
  • sự kiện Cố gắng UploadedComplete và OnUploadComplete, song chỉ ở mức thứ hai một
  • thêm try-catch-block trong EventHandler để bắt ngoại lệ không rõ và in ExceptionMessage để một nhãn trên trang web -> không có gì xảy ra
  • thử nó với (ra) một ThrobberImage ...
  • Nhiều Tipps khác mà không làm việc ...

Vì vậy, tôi hy vọng chúng tôi sẽ tìm một giải pháp với nhau trong cộng đồng này. Heres đánh dấu của tôi:

<%@ Page Title="New Download" Language="C#" MasterPageFile="~/MasterPage.master"  AutoEventWireup="true" CodeFile="NewDownload.aspx.cs" Inherits="Internals_NewDownload" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server"> 

<ajax:ToolkitScriptManager ID="ToolkitscriptManager" runat="server"> </ajax:ToolkitScriptManager> 
<h1>Create a new Download</h1> 

     <ajax:AjaxFileUpload ID="FileUpload" runat="server" ThrobberID="ThrobberLabel" OnUploadComplete="FileUpload_UploadComplete" /> 
     <asp:Label ID="ThrobberLabel" runat="server" Style="display: none;"><img alt="UploadingPicture" title="Please wait while uploading..." src='<%= Constants.DomainString + "/Data/Images/loading-small.gif" %>' /></asp:Label> 
     <asp:Label ID="DownloadLabel" runat="server"></asp:Label> 

</asp:Content> 

Và đây là CodeBehind tôi:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class Internals_NewDownload : System.Web.UI.Page 
{ 
private string m_LanguageCode; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (RouteData.Values.ContainsKey("LanguageCode")) 
     m_LanguageCode = RouteData.Values["LanguageCode"].ToString(); 

    //if (IsPostBack) 
    // return; 
    if (!User.IsInRole("Administrator") && !User.IsInRole("Kunde") && !User.IsInRole("Mitarbeiter")) 
     Response.Redirect(Constants.DomainString + "/PermissionDenied.aspx"); 
    Session[Constants.NonGlobalizedString] = true; 
    Session[Constants.MenuInfoSession] = new ClsMenuInfo("NewDownload"); 
} 

protected void FileUpload_UploadComplete(object sender,  AjaxControlToolkit.AjaxFileUploadEventArgs e) 
{ 
    try 
    { 
     string filePath = "~/upload/" + e.FileName; 
     DownloadLabel.Text = filePath; 
    } 
    catch (Exception ex) 
    { 
     DownloadLabel.Text = ex.Message; 
    } 
} 
} 

Xin vui lòng, nếu bạn có bất kỳ ý tưởng, đừng ngần ngại cho tôi biết điều đó. Tôi rất bối rối khi tôi nghĩ rằng tôi đã làm trong đó howtos tôi tìm thấy trên internet ...

Cảm ơn trước!

Trả lời

0

Hãy xem xét rằng AjaxFileUpload sử dụng kiểm soát contextkey Thông số QueryString để phát hiện đăng lại của riêng mình. Tôi tin rằng lý do của bạn vấn đề là tham số này bị mất trong kết quả của viết lại url. Tôi không phải chuyên gia trong việc áp dụng định tuyến nhưng theo ý kiến ​​của tôi, bạn cần phải đăng ký tham số contextkey trong bảng định tuyến và tinh chỉnh các nguồn AjaxControlToolkit để sử dụng RouteData thay vì Request.QueryString để lấy giá trị đó. Kiểm tra liên kết này để biết thêm thông tin: AjaxControlToolkit Source Code

+0

Xin chào, cảm ơn đề xuất này. Tôi chỉ cố gắng như sau. Tôi đã xóa hai dòng đầu tiên đang đọc Mã Ngôn ngữ từ Bộ sưu tập RouteData. Sau đây tôi mở trang bằng đường dẫn gốc (/Internals/NewDownload.aspx thay vì /Internals/de/NewDownload.aspx), nhưng sự cố vẫn tồn tại. Sự kiện này không bị sa thải ... :-( Chỉ cần BTW: Có nghĩa là đăng câu trả lời trên trang web này dưới dạng nhận xét hoặc làm bài đăng mới cho câu hỏi của tôi? – Roland

+0

@Roland đó là ok để đăng nhận xét lên câu trả lời Ngoài ra, tại sao nghĩ rằng sự kiện 'UploadComplete' không được kích hoạt? Bạn đã cố gắng đặt điểm ngắt tại phương thức' FileUpload_UploadComplete' chưa? Hãy cảnh báo rằng văn bản 'DownloadLabel' sẽ không được cập nhật trên trình xử lý sự kiện UploadComplete ngay cả khi sự kiện được kích hoạt –

+0

I chỉ kiểm tra nó bằng cách nhìn vào DownloadLabel ... Tại sao nó KHÔNG được cập nhật? – Roland

Các vấn đề liên quan