*.htc 是什么文件?干吗使得?怎么生成的?

Rossetti 2003-10-29 11:16:26
同题。
...全文
720 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
26091278 2003-11-05
  • 打赏
  • 举报
回复

第一步

WebService.htc文件首先被附加在Web页面的一个元素里。HTML组件(WebService.htc)在内部使用SOAP同服务器上的Web服务进行通信。

下面这一段HTML说明了如何使用样式属性把Web服务行为附加到HTML元素里。(如果你正在使用Visual Studio.NET IDE,那么就要打开.aspx页面并切换到HTML选项卡。)

<div id=divWSBehavior style="behavior: url (webservice.htc)" onresult="GetData()" >
Web服务行为被附加到了隐藏字段txtWSBehavior里。另一个重要的属性是onresult属性。当被调用的方法返回一个结果的时候,onresult事件被这个行为触发。这个属性指向GetData函数。

在onresult事件被触发的时候,GetData就被调用,而且,在这个函数内部,返回的结果就成为可用的了。Onresult事件只对附加有Web服务行为的文档里的对象有效。

以下是一个可能的GetData函数的模板:

<script>function GetData() {if((event.result.error)&&(iCallID==event.result.id)) {var xfaultcode = event.result.errorDetail.code;var xfaultstring = event.result.errorDetail.string;alert("Error");} else{if (event.result.value == 0) {divWSBehavior.innerHTML = "Product By that name does not
exist.";} else if(event.result.value == 0){divWSBehavior.innerHTML = "Error: " + xfaultstring;} else{divWSBehavior.innerHTML = event.result.value;} } }</script>
事件对象可以通过这个函数来访问。这个对象只有在事件期间,也只有在事件句柄里才能够被使用。这里,GetData函数是一个事件句柄。事件对象公开了各种子属性。表A概述了每一个子属性,它们在这个特定的情形里对我们是很有用的。

表A

属性名称描述

event.result.id
它返回唯一一个和方法调用的实例相关联的标识符。

event.result.value
它返回的是方法调用的值。该值的数据类型由服务描述里对方法的定义来决定。

event.result.error
它返回一个布尔函数的真/伪值,用以指明方法的调用是否成功。

event.result.errorDetail.code
它返回一个错误码。

event.result.errorDetail.string
它返回一条错误信息。


只有在错误发生的时候errorDetail对象才是可用的。div标签的innerHTML属性是根据返回的值来进行填充的。

第二步

你必须下载Webservice.htc文件并把它放置到Web页面的文件夹里(虚拟目录)。(你可以在此下载这个文件。)

这一步其实是使用Web服务行为来增强安全的限制方法。HTC仅仅是个脚本,所以使用Web服务行为和在HTML页面里运行脚本是一样安全的。安全级别并不等同于ActiveX控件所提供的安全级别。在同一个Internet域里把HTC文件和Web服务作为HTML页面能够防止其他域使用这个服务。

第三步

在你能够更进一步使用Web服务之前,它必须使用useService方法来启动。做到这一点的理想方法是创建一个InitService函数,并调用主体标签onload事件里的InitService函数,见下面的代码。一旦页面的内容被载入,服务就被启动了。

<script>
function InitService( ){
divWSBehavior.useService("http://localhost/ProductManager/Pricing.asmx?WSDL","ProductPrice");
}
</script>
<body onload=”InitService()”>
</body>
第一个参数是通向带有?WSDL查询字串的Webservice路径。第二个参数是要被启动服务的友好名称。一旦被启动,这个友好名称可以被用作Web服务的参照。

第四步

一旦Web服务被启动,它就能被使用了。你可以像下面这样使用这项服务:

function GetProductPrice( ) {
var sProductName;
sProductName = document.frmServer.txtGetPrice.value;
iCallID = divWSBehavior.ProductPrice.callService("GetPrice",sProductName);
}
callService的第一个参数是Web服务内部的函数名。

样本应用程序
我已经包含一个你可以下载的样本应用程序。它连接到SQL服务器缺省安装的Northwind数据库上。

用户接口有一个文本框,旁边还有一个GetPrice按钮。一旦用户输入了Product名称并点击了GetPrice按钮,价格就从Northwind数据库里的Products表格中被取回。Pricing Web服务的C#代码也被包含在了源代码里,你可以在此下载。
Rossetti 2003-11-03
  • 打赏
  • 举报
回复
再具体一点。
解释解释 webservice.htc 是什么?
如何用?
gucs 2003-10-30
  • 打赏
  • 举报
回复
学习
smalltree822 2003-10-29
  • 打赏
  • 举报
回复
,HTC提供了一个简单机制以在脚本中实现DHTML行为。一个HTC文件和HTML文件没有任何差别,并且以“.htc”为后缀,它包括脚本和一系列HTC自定义说明元素,这些元素定义了HTML组件的属性、方法、事件等,所有HTC元素通过对象的ID属性作为对象在脚本中使用,所有方法和属性均可在脚本中动态操作。
您可以使用HTC实现以下行为:
*设定属性和方法。通过“PROPERTY”和“METHOD”元素定义
*设置自定义事件。通过“EVENT”元素实现,用该元素的“fire()”方法释放事件,
通过“createEventObject()”方法设置事件环境。
*访问所包含该HTC的的HTML页的DHTML对象模型,使用HTC的“element"对象,返回
一个附加行为的元素,使用该对象,HTC可以访问包含文挡及它的对象模型(属性、方法、事件)。
*收取通知,使用”ATTACH“元素实现,浏览器不但通知HTC标准的DHTML事件,而且通
知HTC两种特殊事件:oncontentready事件和ondocumentready事件 。
HTC封装了行为的定义 ,行为的概念第一次出现是在IE5。0中,HTC中的高级行为封装就是行为不能和元素标记分离,在IE5。0中,在脚本中行为可以从元素中分离出来,而在IE5。5中,元素不能和其原始行为分离。

http://www.fbcdo.com/web/program/htmlno4/html1.htm

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧