在 asp.net 中将超链接值设置为数据网格

发布于 2024-12-09 00:14:35 字数 1682 浏览 0 评论 0原文

我有一个由 DirectoryInfo 填充的数据网格。这些列是名称日期名称尺寸名称值是一个超链接。

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

I have a datagrid that is being populated by DirectoryInfo. The columns are Name, Date & Size. The Name value is a hyperlink.

The hyperlink url should be: "javascript:openFile('" & sFileName & "');"

My code is:

        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>  

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云裳 2024-12-16 00:14:35

您是否尝试过创建 TemplateField ?然后,您可以重载 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
}

Have you tried creating an TemplateField? Then you can overload the OnRowDataBound event find the anchor control and use server side logic to create your anchor. Something like this..

<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
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文