我现在想实现如下功能:
从数据库读取信息,显示在gridview中,大致形式如下:文章1          2006.7.1
文章2          2006.7.2
文章3          2006.7.3
文章4          2006.7.4然后点击各个文件名,弹出相应对话框,实现文章下载功能。请问如何用代码设置文件的链接地址
如果用NavigateUrl,就都链接到一个地址去了
可是又不能直接用<a href="···"></a>
因为还会不断有新的文档添加进数据库请问该如何解决

解决方案 »

  1.   

    NavigateUrl= <%#Eval("ArticleID","download.aspx?id={0}")%>然后在download.aspx? 根据文章ID  取出来相对应的  下载部分字段,以及下载次数更新。也可以直接绑定里面 <%#Eval("DownloadURL","{0}%>
      

  2.   

    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);
            }
      

  3.   

    以下id为数据库中的书名地址的字段,text为页面显示的文本NavigateUrl='<%# "GW_gzxx.aspx?id=" + DataBinder.Eval(Container.DataItem,"id") %>' Text='<%# DataBinder.Eval(Container.DataItem,"书名") %>'>
      

  4.   

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