我正在尝试通过 asp.net 将文件从客户端上传到服务器。问题是文件上传控件在 TabPanel 中不起作用。基本上fileupload的文件名和postedfiles属性在提交后为空。而且我无法将 TabPanel 踢出去。
我正在寻找其他解决方案。一个是我要求用户将文件的路径输入到输入字段并提交一个按钮。
问题是如何根据文件的路径上传文件?
您的帮助将不胜感激。
代码是这样的。有问题的控件 ID 是“fuAttachments”
<asp:updatepanel id="upnlForTab" runat="server">
<ContentTemplate>
<asp:TabContainer ID="tcFS" runat="server" ActiveTabIndex="0">
<asp:TabPanel ID="TabPanelAnnualFS" runat="server" HeaderText="AnnualFS">
<ContentTemplate>
<asp:FormView ID="fvAnnualFS" OnDataBound="fvAnnualFS_DataBound" runat="server">
<InsertItemTemplate>
</InsertItemTemplate>
<EditItemTemplate>
<table>
<tr>
<td colspan="2">
Edit a Financial Statement
<asp:HiddenField ID="hfIDStatement" runat="server" />
</td>
</tr>
<tr>
<td>
Attachments:
</td>
<td>
<asp:GridView ID="gvAttachments" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" Text='<%#Eval("AttachmentName")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:FileUpload ID="fuAttachments" runat="server" />
<asp:Button ID="btnAddAttachment" runat="server" OnClick="btnAddAttachment_Click" Text="Add" />
</td>
</tr>
<tr>
<td>
<asp:Button ID="btnSubmitEditAnnualFS" ValidationGroup="SaveFS" OnClick="btnSubmitEditNewAnnualFS_Click"
runat="server" Text="Submit" />
</td>
<td>
</td>
</tr>
</table>
</EditItemTemplate>
</asp:FormView>
</ContentTemplate>
</asp:TabPanel>
</asp:TabContainer>
</ContentTemplate>
在后端,代码是这样的。问题是 fuAttachments 的所有属性都没有发布,这是 updatepanel 和 tabpanel 中文件上传控制的一个已知问题。
/// <summary>
/// Add document to the document list.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAddAttachment_Click(object sender, EventArgs e)
{
HiddenField hfIDStatement = fvAnnualFS.FindControl("hfIDStatement") as HiddenField;
FileUpload fuAttachments = fvAnnualFS.FindControl("fuAttachments") as FileUpload;
}