javascript - 使用 javascript 和 HTML5 调用 webservice 函数

标签 javascript asp.net html

我有一个 Web 服务,其中包含返回位数组的函数。我想使用javascript和html5在imagebox中绘制这个位数组,例如,位数组形成图像

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
         CodeBehind="Default.aspx.cs" Inherits="testDICOMImageDraw._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
  <script type="text/javascript">
    alert("WebService1.asmx");
    var data;

    function draw(data) {
        alert("withing the function");
        var i = 0,
            image = document.getElementById('image'),
            pixel;
        for (; i < data.length; i++) {
            pixel = document.createElement('div');
            pixel.className = (data[i]) ? 'on' : 'off';
            image.appendChild(pixel)
        }
    }

    function fail() {
        alert('request failed');
    }

    data = WebService1.imageArray('s//s/', draw, fail);

  </script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
  <div id="image">
  </div>
</asp:Content>

网络服务功能是

[WebMethod]
public byte[] imageArray(string path)
    {
        return new byte[] { 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0 };
    } 

网站和 Web 服务都在同一个项目中。

最佳答案

使用以下代码。将 WebService1.getImage 替换为您的服务名称和返回数据的函数。

<div id="image"></div>
<script type="text/javascript">
function draw(data)
{
    var canvas = document.getElementById('image'),
        ctx = canvas.getContext('2d'),
        imgLength = 4,
        size = 50;

    canvas.width = canvas.height = 200;

    for(var x = 0; x < imgLength; x++){
       for(var y = 0; y < imgLength; y++){
           if(data[y * imgLength + x]){
               ctx.fillRect(x*size, y*size, size, size)
           }
       } 
    }
}

function fail()
{
    alert('request failed');
}

WebService1.getImage(draw, fail);
</script>

关于javascript - 使用 javascript 和 HTML5 调用 webservice 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7126513/

相关文章:

jQuery 图像不淡入

javascript - slider 上的按钮没有响应

python - Dryscrape/webkit_server 内存泄漏

javascript - 每个定义的时间延迟关键帧并在动画后保持不透明度为 0

javascript - 取消绑定(bind)某些类上的点击处理程序

javascript - 当选中同一个 GridView 中的 CheckBox 时,如何启用和禁用 GridView 中的 LinkBut​​ton?

c# - 如何在asp.net mvc View 中使用unity3d webgl内容?

c# - 最大报表处理作业限制 Crystal 报表,这是由于我的代码错误?

php - yii cgridview 刷新导致多次 ajax 调用

javascript - 在调整窗口大小时更改 React js 中的值