Отображение значка изображения в столбце gridview со значением href в asp.net - PullRequest
2 голосов
/ 11 августа 2011

У меня есть столбец 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>  

Как мне добавить "NavugateURL" или href = "" к img?

Ответы [ 3 ]

4 голосов
/ 11 августа 2011

Вместо использования элемента управления HTML img попробуйте использовать элемент управления ASP.Net Server.Хорошим выбором будет Hyperlink Control:

Вместо:

<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 голос
/ 11 августа 2011

внутри события 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;
        }  
}

Примечание это написано от руки, поэтому вы можете найти некоторые синтаксические ошибки, которые следует исправить

1 голос
/ 11 августа 2011

вам нужно обернуть ваш значок вокруг тега привязки и установить href тега привязки, используя выражение DataBinding Eval.Предполагается, что ваше поле источника данных "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> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...