【发布时间】:2010-05-11 16:09:01
【问题描述】:
我有一个基本页面,我在 c-sharpcorner.com 上添加了一个基于 Bulk Uploader 的上传器控件,该控件位于基于 yesdegisn 的 jQuery 褪色 div 中
批量上传器有两个用于两个按钮的服务器端事件处理程序——添加和删除。单击这些按钮后,淡入淡出消失,您回到基本页面——如果用户需要添加更多文件,这是不可取的。添加到 ListBox 的文件的 ArrayList 得到维护,但我必须单击“淡入”链接 (LinkButton id="lnkDocumentUpload") 才能再次显示此窗口。
我还需要控件来 POST 到 UploadPost.aspx,但它也不起作用。单击上传按钮 (<asp:Button ID="btnUpload" runat="server" />) 具有与上述相同的行为——淡出消失,数据被保留,并且没有 POST。我用
<form id="frmUpload" action="~/UploadPost.aspx">
...
<asp:Button ID="btnUpload" runat="server" Text="Upload"/>
</form>
一个 LinkButton 通过 jQuery 激活淡入淡出
$("#lnkDocumentUpload").click(function() {
centerPopup();
loadPopup();
});
MyUploader 标记:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyUploader.ascx.cs" Inherits="Controls.MyUploader" %>
<form id="frmUpload" action="~/UploadPost.aspx">
<table>
<tr>
<td style="width: 163px">
<span style="font-size: 10pt; font-family: Verdana"><strong>
Select file to upload:</strong></span></td>
<td style="width: 324px">
<asp:FileUpload ID="fUpload" runat="server" /> <asp:Button ID="btnAdd" runat="server" Text="Add"
OnClick="btnAdd_Click" /></td>
</tr>
<tr>
<td style="width: 163px">
</td>
<td style="width: 324px">
<asp:ListBox ID="lstFiles" runat="server" Width="324px"></asp:ListBox>
</td>
</tr>
<tr>
<td style="width: 163px">
</td>
<td style="width: 324px">
<asp:Button ID="btnRemove" runat="server" Text="Remove" OnClick="btnRemove_Click" />
<asp:Button ID="btnUpload" runat="server" Text="Upload"/></td>
</tr>
<tr>
<td colspan="2">
<asp:Label ID="lblMessage" runat="server" Font-Names="Verdana" Font-Size="Small"
ForeColor="Red"></asp:Label></td>
</tr>
</table>
MyUploader 代码隐藏:
public partial class MyUploader : System.Web.UI.UserControl
{
protected static ArrayList arrFiles = new ArrayList(); // has to be static since Adding and then reusing
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnAdd_Click(object sender, EventArgs e)
{
try
{
if (Page.IsPostBack)
{
arrFiles.Add(fUpload);
lstFiles.Items.Add(fUpload.PostedFile.FileName);
}
}
catch (Exception ex)
{
lblMessage.Text = "An error has occured while adding file" + ex.Message;
}
}
protected void btnRemove_Click(object sender, EventArgs e)
{
if (lstFiles.Items.Count != 0)
{
arrFiles.Remove(fUpload);
lstFiles.Items.Remove(lstFiles.SelectedItem.Text);
}
}
}
【问题讨论】: