2011-08-10 1 views
2

私は、ファイルサーバー上のpdfファイルを指す列が1つあるgridview列を持っています。私はpdfアイコンを表示して、この横にもう一つの列を置く必要があります。ユーザーは、アイコンをクリックして、ファイルサーバーからファイルを起動できなければなりません。href値がasp.netにあるグリッドビュー列にイメージアイコンを表示

私のコードは次のとおりです。

<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を追加することができますどのように?

答えて

4

HTML imgコントロールを使用するのではなく、ASP.Netサーバーコントロールを使用してみてください。 良い選択は、ハイパーリンクコントロールのようになります。

の代わりに:

<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プロパティを設定します。

+0

+1 –

1

アンカータグの周りにアイコンを折り返し、データバインド式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> 
+0

は機能しません。アイコンは、ハイパーリンクのテキスト値のすぐ横にソリッドアイコンとして表示されます。簡素化のため – Frank

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; 
     } 
} 

を設定