2012-09-28 21 views
0

我得到錯誤下面的代碼如何在服務器floder的gridview中顯示圖像?

<asp:TemplateField HeaderText="Image"> 
<ItemTemplate> 
    <asp:Image ID="img" runat="server" ImageUrl="~/Attachment/<%#Eval("Image") %>" /> 
</ItemTemplate> 
</asp:TemplateField> 

錯誤 分析器錯誤信息:服務器標記的格式不正確。

+0

要是你想我的解決方案? – Silagy

回答

0

的第一次嘗試這樣的:

<asp:TemplateField HeaderText="Image"> 
<ItemTemplate> 
    <asp:Image ID="img" runat="server" ImageUrl="<%# Page.ResolveClientUrl(String.Format("~/Attachment/{0}",Eval("Image"))) %>" /> 
    </ItemTemplate> 
</asp:TemplateField> 

還有另一種選擇做,在沒有客戶端的服務器。如果您需要在運行時設置圖像url,它非常有用。

<asp:GridView runat="server" ID="gvActivities" AllowSorting="true" AllowPaging="true" 
     PageSize="25" AutoGenerateColumns="false" Width="100%" OnSorting="gvActivities_Sorting" 
     OnRowDataBound="gvActivities_RowDataBound"> 
     <Columns> 

      <asp:TemplateField HeaderText='Image' HeaderStyle-Width="4%" 
       SortExpression="ActivityType"> 
       <ItemTemplate> 
        <asp:Image ID="ImageType" runat="server" AlternateText='<%# Eval("Type") %>' /> 
       </ItemTemplate> 
      </asp:TemplateField> 

你可以看到,我使用OnRowDataBound來設置圖片url。

  1. 我沒有在客戶端設置ImageURL。
  2. 我正在檢查行類型是否是數據行。
  3. 然後,我創建一個圖像,並將圖像從咧嘴笑進入它。看到我正在使用FindControl方法。 「ImageType」是網格中圖像的ID。
  4. 然後我設置ImageUrl屬性

    protected void gvActivities_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
        if (e.Row.RowType == DataControlRowType.DataRow) 
        { 
         Image img = (Image)e.Row.Cells[0].FindControl("ImageType"); 
         img.ImageUrl = Page.ResolveClientUrl("Image URL path); 
         img.AlternateText = "Text"; 
         img.ToolTip = "Tooltip"; 
        } 
    } 
    
相關問題