簡體   English   中英

來自用戶控件ASP.NET的AjaxFileUpload回發事件

[英]AjaxFileUpload postback event from a usercontrol ASP.NET

我在一個用戶控件中有一個AjaxFileUpload控件,該控件在Postback上動態加載,這里的問題是,一旦文件上傳IsPostBack為false,由於該用戶控件未加載,因此IsPostBack為false,導致不會觸發OnUploadCompleteAll事件。

我發現AjaxFileUpload控件具有自己的回發屬性AjaxFileUpload.IsInFileUploadPostBack ,如何從WebForm1.aspx主頁面訪問此屬性?

當從AjaxFileUpload觸發事件時,我想在WebForm1.aspx頁面加載時檢查IsInFileUploadPostBack ,然后加載usercontrol。

這是代碼。

WebForm1.aspx

<form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
        <asp:Button ID="Button1" runat="server" Text="Load Control" OnClick="Button1_Click" />
        <asp:PlaceHolder ID="Placeholder1" runat="server" />

    </form>

代碼隱藏

protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
                loadcontrol();
        }

        protected void Button1_Click(object sender, EventArgs e)
        {

        }

       private void loadcontrol()
        {
            this.Placeholder1.Controls.Clear();
            var _controls = LoadControl("~/WebUserControl1.ascx");
            this.Placeholder1.Controls.Add(_controls);
        }

WebUserControl1.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="AjaxFileUpload_Test.WebUserControl1" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>

<div id="div1">

        <ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload1" UseAbsoluteHandlerPath="false" OnUploadCompleteAll="AjaxFileUpload1_UploadCompleteAll" OnUploadStart="AjaxFileUpload1_UploadStart" runat="server" />
</div>

您是否有任何特定原因要從后台代碼加載用戶控件? Ajax控件不會創建實際的回發,這就是為什么它總是錯誤的原因。 對於您似乎想要的內容,應該使用NON-ajax文件上傳。

得到它的工作!

由於只需要加載控件,然后我才能訪問AjaxFileUpload.IsInFileUploadPostBack屬性,因此我決定采用非傳統的方法。

將以下代碼添加到Page_Init

//to load the controls if AsyncFileUpload causes a postback
//the URL should contain the ID of the control in its context query string
    if (Request.HttpMethod.Contains("POST") && Request.Url.AbsoluteUri.Contains("AjaxFileUpload1"))
          loadcontrol();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM