问题代码NavigateUrl="<%=dt.Rows[i][4].ToString()%>"
dt(将数据库数据读取到DataTable dt类中)
dt.Rows[i][4].ToString()为服务器中word的相对地址(例:~/dot/little.dot)
<form id="showForm" runat="server">
<ul id="Demo123" class="class" runat="server">
<%for(int i=0;i<dt.Rows.Count;i++)
{
%>
<li><%=dt.Rows[i][0].ToString()%></li>
<li><%=dt.Rows[i][1].ToString()%></li>
<li><%=dt.Rows[i][3].ToString()%></li>
<li><asp:HyperLink ID="hyWordDownload" runat="server" NavigateUrl="<%=dt.Rows[i][4].ToString()%>">word文件</asp:HyperLink></li>
<li><asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" onclick="btnUpload_Click" Text="文件上传" />
</li>
<%
}
%>
</ul>
</form>
用客户端控件,但是你服务器端不要存储~这个数据,这个是服务器端控件用的,楼主多学下网站路径,用内嵌服务器端标记<%%>标记就不要使用服务端控件了
<li><a href="<%=dt.Rows[i][0].ToString().TrimStart('~')%>">word文件</a></li>
<li><asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="文件上传" />
</li>
DEMO
<%@ Page Language="C#" AutoEventWireup="true" %>
<script runat="server">
protected System.Data.DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
dt = new System.Data.DataTable();
dt.Columns.Add("file");
dt.Rows.Add("~/dot/little.dot");
dt.Rows.Add("~/dot/little1.dot");
a1.NavigateUrl = "~/dot/little1.dot";//~这种路径是服务器端用的,编译器会自动解析为当前目录相对于应用程序更目录的路径
}
</script><form id="showForm" runat="server"><asp:HyperLink runat="server" id="a1">word文件</asp:HyperLink>
<ul id="Demo123" class="class" runat="server">
<%for(int i=0;i<dt.Rows.Count;i++)
{
%>
<li>aa</li>
<li>bb</li>
<li>cc</li>
<li><a href="<%=dt.Rows[i][0].ToString().TrimStart('~')%>">word文件</a></li>
<li><asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="文件上传" />
</li>
<%
}
%>
</ul>
</form>