【发布时间】:2016-06-14 11:34:45
【问题描述】:
我在用户控件中有一个 AjaxFileUpload 控件,该控件在 Postback 上动态加载,这里的问题是,一旦文件上传 IsPostBack 为假,由于未加载用户控件,导致 OnUploadCompleteAll 事件不被触发。
我发现 AjaxFileUpload 控件有自己的回发属性AjaxFileUpload.IsInFileUploadPostBack,如何从我的 WebForm1.aspx 主页面访问该属性?
当从 AjaxFileUpload 触发事件时,我想在 WebForm1.aspx 的页面加载上检查 IsInFileUploadPostBack,然后加载用户控件。
这里是代码。
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>
【问题讨论】:
-
只有这么多的方式说“它不能像描述的那样工作”这部分是不可能的“IsInFileUploadPostBack on page load of WebForm1.aspx 然后加载用户控件。”您无法检查尚未加载的内容的属性。
-
明白了...假设我想在加载控件后检查 loadcontrol() 中的属性,我该怎么做?
-
没关系,我自己回答的,也找到了问题的原因
标签: c# asp.net user-controls ajaxcontroltoolkit