如何在ASP.NET Repeater项目中上载FileUpload控件中的所有文件?
我有一个ASP.NET Repeater控件,它的项模板中有一个FileUpload控件。ASP.NET Repeater位于UpdatePanel内,作为从ASP.NET多视图生成的向导的一部分。我试图在单击提交时上载每个FileUpload控件中的每个文件,但在提交表单时FileUpload控件不会保留文件。以下是相关代码:如何在ASP.NET Repeater项目中上载FileUpload控件中的所有文件?,asp.net,file-upload,postback,repeater,Asp.net,File Upload,Postback,Repeater,我有一个ASP.NET Repeater控件,它的项模板中有一个FileUpload控件。ASP.NET Repeater位于UpdatePanel内,作为从ASP.NET多视图生成的向导的一部分。我试图在单击提交时上载每个FileUpload控件中的每个文件,但在提交表单时FileUpload控件不会保留文件。以下是相关代码: <asp:Repeater ID="RepeaterImages" runat="server" OnItemCommand="RepeaterBoxArts_I
<asp:Repeater ID="RepeaterImages" runat="server" OnItemCommand="RepeaterBoxArts_ItemCommand">
<ItemTemplate>
<tr>
<td class="right">
Choose File:
</td>
<td>
<asp:FileUpload ID="FileUpload" runat="server" />
</td>
</tr>
</ItemTemplate>
单击“提交”时,我希望所有带有文件的FileUpload控件都可以上载其文件。但是,如果我运行step调试器,它会将每个FileUpload控件显示为没有文件。这似乎是回发的问题,但我不是100%确定。我遇到了同样的问题,并解决了添加此代码的问题 OnClientClick=“javascript:document.forms[0]。编码='multipart/form data';” 在将上载所有图像的按钮上 这个问题的答案,我在这个链接上找到了 请参见下面的我的代码: 在页面ASPX中
<asp:Repeater ID="rptUpload" runat="server" OnItemDataBound="rptUpload_ItemDataBound">
<HeaderTemplate>
<table width="100%">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:FileUpload ID="fu" runat="server" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<p>
<asp:ImageButton ID="btnUpload" runat="server" OnClick="btnUpload" ImageUrl="img/icon_upload.png" OnClientClick="javascript:document.forms[0].encoding = 'multipart/form-data';" />
</p>
您好,您是否在Updatepanel中使用repeater?我已通过删除我的Updatepanel解决了此问题,但如果可能,我希望保留我的Updatepanel,因为它提供了更平滑的导航。
<asp:Repeater ID="rptUpload" runat="server" OnItemDataBound="rptUpload_ItemDataBound">
<HeaderTemplate>
<table width="100%">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:FileUpload ID="fu" runat="server" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<p>
<asp:ImageButton ID="btnUpload" runat="server" OnClick="btnUpload" ImageUrl="img/icon_upload.png" OnClientClick="javascript:document.forms[0].encoding = 'multipart/form-data';" />
</p>
protected void btnUpload_Click(object sender, ImageClickEventArgs e)
{
try
{
foreach (RepeaterItem item in rptUpload.Items)
{
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
FileUpload fu = (FileUpload)item.FindControl("fu");
if (fu.HasFile)
{
string path = Server.MapPath("~/images/");
string fileName = Path.GetFileName(fu.FileName);
string fileExt = Path.GetExtension(fu.FileName).ToLower();
fu.SaveAs(path + fileName + fileExt);
}
}
}
}
catch (Exception ex)
{
throw ex;
}
}