日期:2014-05-17  浏览次数:20343 次

Repeater绑定 二进制图片
C# code

    <asp:Repeater ID="rptPhoto" runat="server" >
                    <ItemTemplate>
                          <li><asp:LinkButton  runat="server" ID="lkbtn">
                              <asp:Image ID="imagephoto" Width="79" Height="79" ImageUrl='<%# "Getimage.ashx?ID="+ Eval("VolunteerID")  %>' runat="server" />  </asp:LinkButton></li>
                    </ItemTemplate>
                    </asp:Repeater>



然后加了个一般处理文件
C# code

<%@ WebHandler Language="C#" CodeBehind="Getimage.ashx.cs" Class="CCWOnline.Management.Web.Getimage" %>

using System;  
using System.Web;  
using System.Data;  
using System.Data.SqlClient;  
using System.Configuration;
using Siemens.WPV.Service;
 
public class Getimage : IHttpHandler{

    VolunteerService bll = new VolunteerService();
     
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "image/jpeg";
        int volunteerID = Int32.Parse(context.Request.QueryString["ID"]);
        SqlDataReader sdr = bll.FindByID(volunteerID);
        if (sdr.Read())
        {
            context.Response.BinaryWrite( (byte[])dr["photo"] );
        }
        sdr.Close();
    }
}



可是我浏览总是出不来图片,右键查看源文件 src="Getimage.ashx?ID=1" 无语了,在线等高手

------解决方案--------------------
ImageUrl='Getimage.ashx?ID=<%#Eval("VolunteerID")%>'

这样试一下.
------解决方案--------------------
ImangeUrl这个属性本身保存的是对一个图片地址的引用,你直接把图片的二进制赋给这个属性是没有用的,或许你可以试试直接不用标签输出试试