【问题标题】:Setting the hyperlink value to a datagrid in asp.net在 asp.net 中将超链接值设置为数据网格
【发布时间】:2023-03-16 06:30:01
【问题描述】:

我有一个由 DirectoryInfo 填充的数据网格。这些列是 Name、Date 和 Size。 Name 值是一个超链接。

超链接网址应为:"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>  

【问题讨论】:

    标签: asp.net vb.net datagrid navigateurl


    【解决方案1】:

    您是否尝试过创建模板字段?然后你可以重载 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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 2017-02-21
      • 2011-07-02
      • 2014-08-04
      • 1970-01-01
      相关资源
      最近更新 更多