日期:2014-05-19  浏览次数:20373 次

急!!!!!点击GridView,链接地址的问题
我现在想实现如下功能:
从数据库读取信息,显示在gridview中,大致形式如下:

文章1                     2006.7.1
文章2                     2006.7.2
文章3                     2006.7.3
文章4                     2006.7.4

然后点击各个文件名,弹出相应对话框,实现文章下载功能。

请问如何用代码设置文件的链接地址
如果用NavigateUrl,就都链接到一个地址去了
可是又不能直接用 <a   href= "··· "> </a>
因为还会不断有新的文档添加进数据库

请问该如何解决




------解决方案--------------------
NavigateUrl= <%#Eval( "ArticleID ", "download.aspx?id={0} ")%>

然后在download.aspx? 根据文章ID 取出来相对应的 下载部分字段,以及下载次数更新。

也可以直接绑定里面 <%#Eval( "DownloadURL ", "{0}%>


------解决方案--------------------
ClientScriptManager cs = Page.ClientScript;
DataKey dk = GridView1.SelectedDataKey;
if (!cs.IsClientScriptBlockRegistered( "clientScript "))
{
// Form the script that is to be registered at client side.
String scriptString = " <script language=JavaScript> window.open( 'download.aspx?ID= " + dk.Value.ToString() + " ',window, ' ') ";
scriptString += " < ";
scriptString += "/ ";
scriptString += "script> ";
cs.RegisterClientScriptBlock(GetType(), "clientScript ", scriptString);
}
------解决方案--------------------
以下id为数据库中的书名地址的字段,text为页面显示的文本

NavigateUrl= ' <%# "GW_gzxx.aspx?id= " + DataBinder.Eval(Container.DataItem, "id ") %> ' Text= ' <%# DataBinder.Eval(Container.DataItem, "书名 ") %> '>

------解决方案--------------------
可以直接绑顶一个LinkButton <%#Eval( " ").ToString()%> 把要下载你程序的一个ID隐藏到一个字段
Button的事件根据ID取出要下载的地址.然后执行window.location.href= 'xxxxx '实现一个链接
就可以Download了