我有一个带有FileUpload控件的 HTML 页面(好的,ASP.NET)。
<asp:GridView ID="DocGrid" ShowFooter="True" AutoGenerateColumns="False" runat="server" DataKeyNames="doc_id,req_id,doc_name,doc_path" BorderStyle="Solid" BorderWidth="1px" BorderColor="Silver" Width="500px" BackColor="White">
<Columns>
<asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderText="Document">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" Text='<%# Bind("doc_name") %>' NavigateUrl='<%# Bind("doc_path") %>' Target="_blank" runat="server"></asp:HyperLink>
</ItemTemplate>
<FooterTemplate>
<asp:FileUpload ID="fuFooter" runat="server" Width="350px" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
这不是 HTML 的全部内容,但它应该是理解问题所需的一切。
在后面的 VB 代码中,使用以下代码正确保存了上传的文件:
Dim fuFooter As FileUpload = CType(DocGrid.FooterRow.FindControl("fuFooter"), FileUpload)
If (fuFooter.HasFile) Then
Dim uploadDir As String = Server.MapPath(VIRTUAL_REC_DOCS)
If Not String.IsNullOrEmpty(uploadDir) Then
Dim item As New ReqDoc()
item.doc_name = fuFooter.FileName
item.doc_path = uploadDir & fuFooter.FileName
fuFooter.SaveAs(item.doc_path)
item.req_id = Request.QueryString("Req_id")
DocReqManager.insertReqDoc(item)
bindDocGridgrid()
End If
Else
lblMessage.Text = "No file attached."
End If
事实上,这些文件确实会上传到我的VIRTUAL_REC_DOCS
文件夹并保存到数据库中。
数据绑定后,项目将显示在表单的 HyperLink 控件中。
无论出于何种原因,单击超链接都不会打开该项目。
NavigateUrl 显示路径的方式是否存在问题,还是发生了其他问题?