用VS2005创建一个Atlas Web应用程序(2)

本文介绍如何使用Atlas声明式脚本模型调用Web服务,包括脚本声明语法、与HTML元素关联及调用Web服务的基本知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



本文主要介绍微软新的Web开发技术中的客户端的Atlas的脚本声明语法,在这里你将要建立和前一篇文章中介绍的例子同样功能的Web程序,在前一篇文章中介绍了用客户端脚本调用Web服务,然而在这里,不是用客户端脚本,而是用客户端脚本声明来完成调用Web服务,你可以学到Atlas'声明块的基本语法、如何与Web页中的HTML元素建立关联和如何调用Web服务的基本知识。
    首先你要建立一个'Atlas'的Web应用程序,添加一个Web服务HelloWorldService.asmx和一个web页面Declarative.aspx,,具体做法和前一篇文章中介绍的一样。同样在Web服务代码里添加一个和前一篇文章中描述的一样的HelloWorld方法。
    现在我们用一个脚本声明块来替代以前的脚本功能,脚本声明标记代码如下,请复制并粘贴到你的代码里:

  <script type="text/xml-script">
<page xmlns:script=" http://schemas.microsoft.com/xml-script/2005">
  <components>

  <textBox id="SearchKey" />

  <serviceMethod id="helloService"
      url="HelloWorldService.asmx"
      methodName="HelloWorld">
    <bindings>
      <binding dataContext="SearchKey"
        dataPath="text"
        property="parameters"
        propertyKey="query" />
    </bindings>
    <completed>
      <invokeMethod target="resultsBinding"
      method="evaluateIn" />
    </completed>
  </serviceMethod>

  <button id="SearchButton">
    <click>
      <invokeMethod target="helloService"
          method="invoke" />
    </click>
  </button>

  <label id="results">
    <bindings>
      <binding id="resultsBinding"
        dataContext="helloService"
        dataPath="result"
        property="text"
        automatic="false" />
    </bindings>
  </label>

  </components>
</page>
</script>
    'Atlas'脚本声明标记很像XHTML规范的风格,而'Atlas'脚本声明标记与它的不同之处是'Atlas'脚本声明标记引用了'Atlas'客户端脚本库中的对象和元素。'Atlas'描述块使用了标准的XHTML中的 <script>元素,所不同之处是该元素的type属性值为text/xml-script。'Atlas'描述块的根元素是<page>元素,它包含了描述块中所有的其他元素和它自身的命名空间,它的命名空间就是xmlns:script的属性值,第二个元素是<components>,它来自于'Atlas'声明块中的UI控件和组件,UI元素在Atlas中被声明为<components>元素的孩子元素,这样,页面中包含了三个Atlas的UI元素:一个<textBox>元素、一个<button>元素和一个<label>元素。这些Atlas元素和页面中的HTML元素相互关联。例如,你可以通过<textBox>元素的id属性把<textBox>元素和页面中HTML的textbox控件关联起来,<button>元素是相应HTML控件调用Web服务的控件,它的<click>元素是指相应的HTML的button控件的click事件行为。同样,<invokeMethod>孩子元素指明了在click时调用的一个远程方法,<invokeMethod>元素的target属性说明了<serviceMethod>元素的远程调用的具体方法名,<serviceMethod>元素提供了要调用的Web服务的URL和要调用的方法名(HelloWorld)。<bindings>孩子元素说明了客户端控件的值要作为参数传送给远程方法和远程方法中的参数名。在<completed>元素里说明了当<serviceMethod>元素里所规定的远程方法在执行完成后要做的事,同理,执行了在method属性中指明了的一个本地'Atlas'方法。它对从服务端的返回值进行了加工并把值赋给本地对象,这个本地对象就是<label>元素,它通过ID属性的值results和<span>关联起来。
    总的来说,Xml-Script是一个声明性脚本模型,它允许开发者使用一种类似于XML的编程模型书写客户端代码。Atlas声明性脚本一般使用下列语法定义在<script></script>标签内部,它的格式如下:
<script type="text/xml-script">
<page xmlns:script=" http://schemas.microsoft.com/xml-script/2005">
<references>
</references>
<components>
</components>
</page>
</script>
    下面是Declarative.aspx的完整代码:
<% @ Page Language="C#" Title="Atlas Declarative Walkthrough" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns=" http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">
  <atlas:scriptmanager runat="server" id="scriptManager">
    <services>
    <atlas:servicereference path="~/HelloWorldService.asmx" />
    </services>
  </atlas:scriptmanager>
  <style type="text/css">
  body { font: 11pt Trebuchet MS;
    font-color: #000000;
    padding-top: 72px;
      text-align: center }

  .text { font: 8pt Trebuchet MS }
  </style>

</head>
<body>
  <form id="Form1" runat="server">
  <div>
    Search for
    <input id="SearchKey" type="text" />
    <input id="SearchButton" type="button"
        value="Search" />
  </div>
  </form>
  <hr style="width: 300px" />
  <div>
  <span id="results"></span>
  </div>
  <script type="text/xml-script">
  <page xmlns:script=" http://schemas.microsoft.com/xml-script/2005">
  <components>

    <textBox id="SearchKey" />

    <serviceMethod id="helloService"
        url="HelloWorldService.asmx"
        methodName="HelloWorld">
      <bindings>
      <binding dataContext="SearchKey"
          dataPath="text"
          property="parameters"
          propertyKey="query" />
      </bindings>
      <completed>
      <invokeMethod target="resultsBinding"
        method="evaluateIn" />
      </completed>
    </serviceMethod>

    <button id="SearchButton">
      <click>
      <invokeMethod target="helloService"
            method="invoke" />
      </click>
    </button>

    <label id="results">
      <bindings>
      <binding id="resultsBinding"
          dataContext="helloService"
          dataPath="result"
          property="text"
          automatic="false" />
      </bindings>
    </label>

  </components>
  </page>
  </script>
</body>
</html>

    现在你可以运行Declarative.aspx看看效果了,你会发现本例程实现了第一篇文章的例子同样的功能,只是使用了Atlas的另外一种技术方法。下一篇文章将介绍创建具有自动下拉框功能的Atlas Web应用程序。

我的上一篇文章: 用VS2005创建一个基本的Atlas Web应用(1)
资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在 IT 领域,文档格式转换是常见需求,尤其在处理多种文件类型时。本文将聚焦于利用 Java 技术栈,尤其是 Apache POI 和 iTextPDF 库,实现 doc、xls(涵盖 Excel 2003 及 Excel 2007+)以及 txt、图片等格式文件向 PDF 的转换,并实现在线浏览功能。 先从 Apache POI 说起,它是一个强大的 Java 库,专注于处理 Microsoft Office 格式文件,比如 doc 和 xls。Apache POI 提供了 HSSF 和 XSSF 两个 API,其中 HSSF 用于读写老版本的 BIFF8 格式(Excel 97-2003),XSSF 则针对新的 XML 格式(Excel 2007+)。这两个 API 均具备读取和写入工作表、单元格、公式、样式等功能。读取 Excel 文件时,可通过创建 HSSFWorkbook 或 XSSFWorkbook 对象来打开相应格式的文件,进而遍历工作簿中的每个 Sheet,获取行和列数据。写入 Excel 文件时,创建新的 Workbook 对象,添加 Sheet、Row 和 Cell,即可构建新 Excel 文件。 再看 iTextPDF,它是一个用于生成和修改 PDF 文档的 Java 库,拥有丰富的 API。创建 PDF 文档时,借助 Document 对象,可定义页面尺寸、边距等属性来定制 PDF 外观。添加内容方面,可使用 Paragraph、List、Table 等元素将文本、列表和表格加入 PDF,图片可通过 Image 类加载插入。iTextPDF 支持多种字体和样式,可设置文本颜色、大小、样式等。此外,iTextPDF 的 TextRenderer 类能将 HTML、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值