2012-09-28 2 views

답변

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> 

는 내가 이미지 URL을 설정하려면 OnRowDataBound를 사용하고, 볼 수 있습니다.

  1. 클라이언트에 ImageURL을 설정하지 않았습니다.
  2. 행 유형이 데이터 행인지 확인하고 있습니다.
  3. 그럼 나는 이미지를 만들고 그 이미지에 미소를 짓고있다. FindControl 메서드를 사용하고 있는지 확인하십시오. "ImageType"은 그리드에있는 이미지의 ID입니다.
  4. 그때 내가 이미지 URL 속성

    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"; 
        } 
    } 
    
관련 문제