0

我的任务是使用这种方法,坦率地说,id 可以在 2 秒内完成这个服务器端,但需要全部在 javascript 中完成。

所以在这里,我需要从名为 S_TeamMember 的对象中返回的数据库中检索二进制图像。属性之一是 MainImg byte[]

我使用 JSON 调用 ashx 处理程序来调用数据库并检索数据。

    $(function () {
    var queryparam = getUrlVars()["CatLink"];

    $.ajax({
        url: "TeamGroups.ashx",
        data: { CatLink:  queryparam },
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnTeamGroupsCompleted,
        error: OnPageFailM
    });
});

上面的 JSON 调用

     function OnTeamGroupsCompleted(result) {
    for (var i = 0; i < result.length; i++) {

        var name = result[i].Name;
        var recno = result[i].Recno;
        var mainimg = result[1].MainImg;
        var memholder = "<div class='PersonImageHolder'>" +
            "<div class='PersonImage'>" +
                "<img src='"+ mainimg +"'/>" + <------ PROBLEM IS HERE
            "</div>" +
            "<div class='PersonNameHolder inline-block'>" +
        "<div class='ImgHolderL inline-block'>" +
            "<img src='images/web/WhiteRibbonL.png' />" +
            "</div>" +
            "<div class='NameHolder inline-block'>" +
            "<p><a href='MemberDetail.aspx?TeammMemberLink="+ recno +"'>"+ name +"</a></p>" +
            "</div>" +
            "<div class='ImgHolderR inline-block'>" +
            "<img src='images/web/WhiteRibbonR.png' />" +
            "</div>" +
            "</div>" +
            "</div>";

        $('.Content').append(memholder);

    }
}

然后在上面如何迭代 JSON 结果以在带有图像的页面上绘制一个 div。我遇到的麻烦是将“MainImg”二进制数据解析为html图像标签。

有什么想法我该怎么做吗?

任何帮助将不胜感激

4

2 回答 2

1

OnTeamGroupsCompleted 中 result[i].MainImg 的值是多少?JSON 格式本身不支持二进制数据。你可以:

  1. 写一个新的ashx
  2. 在 url 中传递名称或 id
  3. 将 ashx 设置为 img src
  4. 在 ashx 输出图像二进制数据

在 JavaScript 中:

"<img src='image.ashx?name"+ result[i].Name +"'/>" + <------ PROBLEM IS HERE

在 image.ashx 中:

public void ProcessRequest(HttpContext context)
{
    string name = context.Request.QueryString["name"];
    //query database by name to get image binary data
    Byte[] bytes = ...;
    context.Response.ContentType = "image/png";
    context.Response.BinaryWrite(bytes);
}
于 2012-09-14T12:19:14.327 回答
0

我认为使用 javascript 是不可行的!但是您可以将图像的 url 存储在 DB 中并将其返回给浏览器。

于 2012-09-14T11:46:28.553 回答