的第一次嘗試這樣的:
<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。
- 我沒有在客戶端設置ImageURL。
- 我正在檢查行類型是否是數據行。
- 然後,我創建一個圖像,並將圖像從咧嘴笑進入它。看到我正在使用FindControl方法。 「ImageType」是網格中圖像的ID。
然後我設置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";
}
}
要是你想我的解決方案? – Silagy