所以我的转发器中有我的文件上传
<asp:Content ID="Content3" ContentPlaceHolderID="content" Runat="Server">
<asp:Repeater ID="rptVrijstellingen" runat="server">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<h2><%# Eval("tblExternVak.ExternvakNaam") %></h2>
<h4>Selecteer een bestand om te uploaden:</h4>
Gelieve het bestand de naam te geven van het overeenkomstige vak om de verwerking
vlot te laten verlopen.
<br /><br /> <br />
<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>
<br /><br />
<hr />
<br />
<br />
<asp:Button id="UploadButton"
Text="Upload file"
OnClick="UploadButton_Click"
runat="server">
</asp:Button>
<br />
<br />
</ItemTemplate>
<SeparatorTemplate><hr /></SeparatorTemplate>
</asp:Repeater>
<asp:CheckBox id="CBupload" runat="server" />
<asp:Label id="lblUpload" runat="server"> Geleverd aan Mevrouw Van Orlé</asp:Label>
<asp:Label id="UploadStatusLabel" runat="server" ForeColor="Red"></asp:Label>
</asp:Content>
我想从我的类文件中找到它
if (FileUpload1.HasFile)
{
try
{
String fileName = FileUpload1.FileName;
savePath += fileName;
FileUpload1.SaveAs(Server.MapPath(savePath));
tblBijlage s = new tblBijlage();
s.bijlageTitel = fileName;
s.bijlageURL = savePath;
s.bijlageType = "1";
s.fk_externvakID = 2;
BLLstudent BLLstudent = new BLLstudent();
BLLstudent.insertFile(s);
}
catch (Exception ex)
{
UploadStatusLabel.Text = ex.Message;
}
}
else
{
UploadStatusLabel.Text = "Gelieve een bestand te kiezen";
}
}
}
问题是它没有在转发器中找到 fileupload1 和任何其他声明的东西,任何人都可以给我一个关于如何在转发器中处理上传的解决方案吗? (我用我的 page_load 中的数据填充中继器,所以它在加载时存在,所以我知道这不是问题)
提前谢谢你:)
最佳答案
您必须迭代 Repeater 控件的 Items 集合并使用 FindControl
方法获取 FileUpload1
对象的引用。
foreach (RepeaterItem item in rptVrijstellingen.Items)
{
FileUpload file=(FileUpload)item.FindControl("FileUpload1");
String fileName = file.FileName;
FileUpload1.SaveAs(Server.MapPath(savePath + fileName));
....
}
关于c# - 在转发器中处理文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487984/