在asp.net中使用href值在gridview列中显示图像图标

时间:2011-08-10 23:01:33

标签: asp.net vb.net gridview

我有一个gridview列,其中有一列指向文件服务器上的pdf文件。我需要在此旁边有另一列,显示pdf图标。用户应该能够单击该图标并从文件服务器启动该文件。

我的代码是:

<asp:GridView ID="gvInvoices" AutoGenerateColumns="false" runat="server" Font-Names="Arial" Font-Size="Small" Width="50%">
                        <Columns>
                            <asp:TemplateField HeaderText="File Type">
                                <ItemTemplate><img runat="server" src="Images/img_Pdf.gif" id="imgFileType" /></ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Name">
                                <ItemTemplate><%#Eval("InvoiceNumber")%></ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                        </asp:GridView>  

如何在img中添加“NavugateURL”或href =“”?

3 个答案:

答案 0 :(得分:4)

尝试使用ASP.Net Server控件,而不是使用HTML img控件。 一个很好的选择是超链接控制:

而不是:

<img runat="server" src="Images/img_Pdf.gif" id="imgFileType" />

使用:

<asp:HyperLink ID="imgFileType" ImageUrl="Images/img_Pdf.gif" NavigateUrl="" runat="server">HyperLink</asp:HyperLink>

只需设置您的NavigateUrl属性。

答案 1 :(得分:1)

您需要将图标包裹在锚标记周围,并使用DataBinding表达式Eval设置锚标记的href。这假设您的数据源字段“PDFPath”是绝对路径。

  <asp:GridView ID="gvInvoices" AutoGenerateColumns="false" runat="server" Font-Names="Arial" Font-Size="Small" Width="50%">
                            <Columns>
                                <asp:TemplateField HeaderText="File Type">
                                    <ItemTemplate><a href='<%#Eval("PDFPath")%>'> <img runat="server" src="Images/img_Pdf.gif" id="imgFileType" /></a></ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="Name">
                                    <ItemTemplate><%#Eval("InvoiceNumber")%></ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                            </asp:GridView> 

答案 2 :(得分:1)

RowDataBind事件中

查找您的图片控件并设置其NavigateUrl属性

protected void gvInvoices_RowDataBound(object Sender , GridViewRowEventArgs e)
{
        if(e.Row.RowType==DataRow)
        {
          HtmlControl icon = e.Row.FindControl("imgFileType") as HtmlControl;
          icon.NavigateUrl = ((MyDataType)e.Row.DataRow).PDFPath;
        }  
}

注意这是免费的手写,所以你可能会发现一些你应该修复的语法错误