У меня есть базовая страница, к которой я добавляю элемент управления загрузчиком, основанный на Bulk Uploader на c-sharpcorner.com, и этот элемент управления находится в блеклом jQuery div на основе yesdegisn
Bulk Uploader имеет два обработчика событий на стороне сервера для двух кнопок - Add и Remove. После нажатия этих кнопок исчезновение исчезнет, и вы вернетесь к основной странице - если пользователю необходимо добавить больше файлов, это нежелательно. ArrayList файлов, добавленных в ListBox, сохраняется, но мне нужно щелкнуть ссылку «постепенное появление» (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);
}
}
}