AJAX下FileUpload上傳文件的方法
AJaxFileUploadHelper
使用MasterPage時:
Default.aspx
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Panel ID="pnl" runat="server" Visible="false">
<iframe id="file" name="file" src="Default2.aspx?type=<% =ViewState["ID"] %>&btn=<% =btnlist.ClientID %>" width="100%" height="200"></iframe>
</asp:Panel>
<asp:Button ID="btnlist" runat="server" OnClick="btnlist_Click" Text="show" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
C#
protected void Button1_Click(object sender, EventArgs e)
{
ViewState["ID"] = "ddd";
pnl.Visible = true;
}
protected void btnlist_Click(object sender, EventArgs e)
{
pnl.Visible = false;
}
Default2.aspx
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<jeffz:AjaxFileUploadHelper ID="AjaxFileUploadHelper1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<%= DateTime.Now %>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Upload" OnClick="Button1_Click" /><br />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Hidden" />
</ContentTemplate>
</asp:UpdatePanel>
</form>
C#
protected void Button1_Click(object sender, EventArgs e)
{
this.Label1.Text = Request.QueryString["type"];
this.Label1.Text += this.FileUpload1.PostedFile.ContentLength + " bytes";// +ViewState["list"].ToString();
if (this.TextBox1.Text.ToString() == "")
Response.Write("<script>alert('dafd');</script>");
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Write("<script>var obj=parent.parent.parent.document.getElementById('"+Request.QueryString["btn"].ToString()+"');obj.click();</script>");
}
不使用MasterPage頁的方法
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<%= DateTime.Now %>
<hr />
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Panel ID="pnl" runat="server" Visible="false">
<iframe id="file" name="file" src="Default2.aspx?type=<% =ViewState["ID"] %>" width="100%" height="200"></iframe>
</asp:Panel>
<asp:Button ID="btnlist" runat="server" OnClick="btnlist_Click" Text="show" />
</ContentTemplate>
</asp:UpdatePanel>
</form>
C#
protected void Button1_Click(object sender, EventArgs e)
{
ViewState["ID"] = "ddd";
pnl.Visible = true;
}
protected void btnlist_Click(object sender, EventArgs e)
{
pnl.Visible = false;
}