2011-10-08 83 views
0

我有一个由DirectoryInfo填充的数据网格。列为名称,日期 & 大小名称值是一个超链接。在asp.net中将超链接值设置为数据网格

的超级链接URL应该是:"javascript:openFile('" & sFileName & "');"

我的代码是:

 Dim sFilePath As String = strDirectoryPath + OrderDocName 
     Dim dirInfo As New DirectoryInfo(strDirectoryPath) 
     dgOrderDocList.DataSource = dirInfo.GetFiles("*.*") 
     dgOrderDocList.DataBind() 



<asp:DataGrid runat="server" id="dgOrderDocList" 
           AutoGenerateColumns="False" AlternatingItemStyle-BackColor="#eeeeee" 
           HeaderStyle-BackColor="Navy" HeaderStyle-ForeColor="White" 
           HeaderStyle-Font-Size="10pt" HeaderStyle-Font-Bold="True"> 
           <Columns> 
           <asp:HyperLinkColumn DataNavigateUrlField="Name" DataTextField="Name" 
             HeaderText="File Name" ItemStyle-Font-Size="Small" /> 
           <asp:BoundColumn DataField="Length" HeaderText="File Size" 
             ItemStyle-HorizontalAlign="Right" 
             DataFormatString="{0:#,### bytes}" ItemStyle-Font-Size="Small"/> 
           <asp:BoundColumn DataField="LastWriteTime" HeaderText="Date" 
            ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" ItemStyle-Font-Size="Small"/> 
           </Columns> 
          </asp:DataGrid> 

回答

0

您是否尝试过创建一个模板列?然后,您可以重载OnRowDataBound事件,找到锚点控件并使用服务器端逻辑来创建锚点。像这样的东西..

<columns> 
    <asp:TemplateField> 
     <asp:ItemTemplate> 
      <asp:HyperLink id="hyperlink1" runat="server" />  
     </asp:ItemTemplate> 
    </asp:TemplateField> 
</columns> 

gv_OnRowDataBound(Object sender, GridViewRowEventArgs e){ 
    GridViewRow row = this.gv.Rows[e.index]; 
    var hyperLink = row.findControl("hyperlink1"); 
    \\Set target and NavigateUrl properties 
} 
相关问题