Asp.net 异步文件上传和转发器
我有一个asyncfileupload控件和一个中继器,我想用它来显示添加的文件列表。在FileUploadedComplete事件中,我将新文件的名称和大小添加到数据表中,并使用它绑定中继器。我可以选择一个文件并添加它(SaveAs()),将信息添加到数据表(我可以看到它在那里),但是在调用repeater的databind()之后,什么都没有发生,无法看到文件数据。 这就是我所拥有的(淡化版):Asp.net 异步文件上传和转发器,asp.net,.net-3.5,repeater,c#-2.0,asyncfileupload,Asp.net,.net 3.5,Repeater,C# 2.0,Asyncfileupload,我有一个asyncfileupload控件和一个中继器,我想用它来显示添加的文件列表。在FileUploadedComplete事件中,我将新文件的名称和大小添加到数据表中,并使用它绑定中继器。我可以选择一个文件并添加它(SaveAs()),将信息添加到数据表(我可以看到它在那里),但是在调用repeater的databind()之后,什么都没有发生,无法看到文件数据。 这就是我所拥有的(淡化版): 文件上载和中继器都位于更新面板内。update post要包含更新面板标记,请将异步文件上载控件
文件上载和中继器都位于更新面板内。update post要包含更新面板标记,请将异步文件上载控件放在一个更新面板中,将中继器放在另一个更新面板中。upload Complete(即OnClient LoadComplete)的客户端事件,执行一个uu doPostBack('update_panel_id_of_repeater')。
<asp:UpdatePanel runat="server" ID="upnlFU">
<ContentTemplate>
<ajaxToolkit:AsyncFileUpload
runat="server"
ID="fuAttchedDocs"
ThrobberID="myThrobber"
UploaderStyle="Modern"
onuploadedcomplete="fuAttchedDocs_UploadedComplete"
onuploadedfileerror="fuAttchedDocs_UploadedFileError" />
<asp:Repeater runat="server" ID="rptAttachments">
<HeaderTemplate>
<table>
<tr>
<td>File Name</td>
<td>File Size</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("FileName")%></td>
<td><%# Eval("FileSize")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</ContentTemplate>
</asp:UpdatePanel>
DataTable dtAttachments;
protected void Page_Load(object sender, EventArgs e)
if (!Page.IsPostBack)
{
dtAttachments = new DataTable();
dtAttachments.Columns.Add("FileName", Type.GetType("System.String"));
dtAttachments.Columns.Add("FileSize", Type.GetType("System.Int32"));
dtAttachments.AcceptChanges();
}
else
{
dtAttachments = (DataTable)ViewState["Attachments"];
}
BindAndSaveAttachmentData();
}
void BindAndSaveAttachmentData()
{
ViewState["Attachments"] = dtAttachments;
rptAttachments.DataSource = dtAttachments;
rptAttachments.DataBind();
}
protected void fuAttchedDocs_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
{
string sFileName = fuAttchedDocs.FileName;
string sFileSize = e.FileSize;
fuAttchedDocs.SaveAs(FilePath.TEMP_FOLDER + sFileName); // Saving to d:\blah\yada temporary folder
dtAttachments.Rows.Add(new object[] { sFileName, int.Parse(sFileSize) });
BindAndSaveAttachmentData();
}