Próbuję uzyskać działanie tego AjaxFileUpload
-Control (używane w ContentPage). Ale nie uruchamia się OnUploadComplete
Zdarzenie po stronie serweraAjaxFileUpload nie uruchamia zdarzenia OnUploadComplete
Używam wersji 4.1.60919.0
zestawu ControlToolkit. Próbowałem wszystkiego, co znalazłem w Internecie.
Oto tylko kilka kroków:
- Dodany enctype = "multipart/form-data" method = "post" do formularzy elementu w moim MasterPage
- zagnieżdżone AjaxFileUpload się w UpdatePanel z UpdateMode = Zawsze
- Wypróbowane wydarzenia UploadedComplete i OnUploadComplete, ale pozostał na drugim
- dodał try-catch-blok w EventHandler złapać nieznanych wyjątki i wydrukować ExceptionMessage do etykiety na stronie -> nic się nie stało
- Próbowaliśmy go z (wy) ThrobberImage ...
- Wiele innych TIPPS że nie działa ...
Więc mam nadzieję, że będziemy razem znaleźć rozwiązanie w tej społeczności. Herezje mój znaczników:
<%@ 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>
I to jest moim kodzie:
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;
}
}
}
Proszę, jeśli masz jakiś pomysł, nie wahaj się dać mi znać go. Jestem bardzo zdezorientowany, ponieważ myślę, że właśnie zrobiłem to w tym, jak znalazłem w Internecie ...
Z góry dziękuję!
Witam, dziękuję za tę sugestię. Po prostu próbowałem następujących rzeczy. Usunąłem pierwsze dwie linie, które odczytują kod języka z kolekcji RouteData. Następnie otworzyłem stronę według ścieżki macierzystej (/Internals/NewDownload.aspx zamiast /Internals/de/NewDownload.aspx), ale problem nadal istnieje. Impreza nie zostanie zwolniona ... :-( Po prostu BTW: ma na celu opublikowanie odpowiedzi na tej stronie jako komentarz lub jako nowy wpis na moje pytanie? – Roland
@Roland, w porządku, aby opublikować komentarz do odpowiedzi A także, dlaczego uważasz, że zdarzenie "UploadComplete" nie zostało uruchomione? Czy próbowałeś ustawić punkt przerwania w metodzie "FileUpload_UploadComplete"? Uważaj, że tekst 'DownloadLabel' nie zostanie zaktualizowany w module obsługi zdarzenia UploadComplete, nawet jeśli zdarzenie zostało wywołane –
I tylko testowałem to, oglądając DownloadLabel ... Dlaczego NIE powinien być aktualizowany? – Roland