在ASP.NET Atlas中调用Web Service——在页面加载时调用Web Service
2006-05-29 09:48
776 查看
作者:Dflying Chen (http://dflying.cnblogs.com/ )
很多时候我们需要在页面加载以后立刻调用一些Web Service,比如一个客户端的Atlas ListView会在加载后立刻得到初始化的填充数据。虽然这可以使用Atlas的InitialData控件完成,但对于其它的一些要求,比如在页面加载后立刻执行一段Atlas脚本(其中用到了Atlas对JavaScript的扩展),我们仍需要一个页面加载的事件来触发这些操作。
很多朋友采用如下的两种方法:
直接在页面的Script段中书写要执行的脚本。
在页面的onload JavaScript事件处理方法中书写。
这些都是不正确的方式,会有错误发生,原因很简单:Atlas的客户端实现也是一段JavaScript,需要先执行一次才可以工作,而上述两种方法的语句都是在Atlas客户端实现被初始化前运行的,自然会导致错误。
Atlas充分意识到了这个需求,提供了Framework内部的OnLoad事件,该事件将在Atlas Framework初始化以后被引发。想捕获这个事件,您需要在页面的Atlas XML Script中声明:
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
<components>
<application id="application" load="OnApplicationLoad" />
</components>
</page>
其中application作为当前运行的Atlas程序的引用,提供了一个load事件,这样我们通过指定它的事件处理函数,即可在Atlas Framework初始化之后执行我们的代码。
下面来看一个例子,Web Service如下,还是简单的两个数相加:
[WebMethod]
public int AddInt(int int1, int int2)
<atlas:ScriptManager ID="scriptManager" runat="server" EnableScriptComponents="true">
<Services>
<atlas:ServiceReference Path="SimpleWebService.asmx" />
</Services>
</atlas:ScriptManager>
页面上再添加两个input用来提供两个加数:
<input id="value1" type="text" value="1" />
<input id="value2" type="text" value="2" />
加上捕获Atlas Framework load事件的XML Script定义:
<script type="text/xml-script">
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
<components>
<application id="application" load="OnApplicationLoad" />
</components>
</page>
</script>
下面是事件处理函数以及相应的Callback,可以看到我们应用了三种Atlas Framework提供的扩展:
$()方法,等同于document.getElementById()
Sys.UI.TextBox类,封装了HTML的input元素
对Web Service调用的Mashup
function OnApplicationLoad()
function OnComplete(result)
{
alert(result);
}
运行结果,没有任何问题:
![](http://images.cnblogs.com/cnblogs_com/dflying/applicationloadevent.JPG)
本实例的源代码可以在此下载:http://files.cnblogs.com/dflying/ApplicationLoadEventDemo.zip
很多时候我们需要在页面加载以后立刻调用一些Web Service,比如一个客户端的Atlas ListView会在加载后立刻得到初始化的填充数据。虽然这可以使用Atlas的InitialData控件完成,但对于其它的一些要求,比如在页面加载后立刻执行一段Atlas脚本(其中用到了Atlas对JavaScript的扩展),我们仍需要一个页面加载的事件来触发这些操作。
很多朋友采用如下的两种方法:
直接在页面的Script段中书写要执行的脚本。
在页面的onload JavaScript事件处理方法中书写。
这些都是不正确的方式,会有错误发生,原因很简单:Atlas的客户端实现也是一段JavaScript,需要先执行一次才可以工作,而上述两种方法的语句都是在Atlas客户端实现被初始化前运行的,自然会导致错误。
Atlas充分意识到了这个需求,提供了Framework内部的OnLoad事件,该事件将在Atlas Framework初始化以后被引发。想捕获这个事件,您需要在页面的Atlas XML Script中声明:
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
<components>
<application id="application" load="OnApplicationLoad" />
</components>
</page>
其中application作为当前运行的Atlas程序的引用,提供了一个load事件,这样我们通过指定它的事件处理函数,即可在Atlas Framework初始化之后执行我们的代码。
下面来看一个例子,Web Service如下,还是简单的两个数相加:
[WebMethod]
public int AddInt(int int1, int int2)
<atlas:ScriptManager ID="scriptManager" runat="server" EnableScriptComponents="true">
<Services>
<atlas:ServiceReference Path="SimpleWebService.asmx" />
</Services>
</atlas:ScriptManager>
页面上再添加两个input用来提供两个加数:
<input id="value1" type="text" value="1" />
<input id="value2" type="text" value="2" />
加上捕获Atlas Framework load事件的XML Script定义:
<script type="text/xml-script">
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
<components>
<application id="application" load="OnApplicationLoad" />
</components>
</page>
</script>
下面是事件处理函数以及相应的Callback,可以看到我们应用了三种Atlas Framework提供的扩展:
$()方法,等同于document.getElementById()
Sys.UI.TextBox类,封装了HTML的input元素
对Web Service调用的Mashup
function OnApplicationLoad()
function OnComplete(result)
{
alert(result);
}
运行结果,没有任何问题:
本实例的源代码可以在此下载:http://files.cnblogs.com/dflying/ApplicationLoadEventDemo.zip
相关文章推荐
- 在ASP.NET Atlas中调用Web Service——直接在ASPX页面上暴露Web Method
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(1):调用Web Service、调用页面中的类方法(转)
- 在ASP.NET Atlas中调用Web Service——处理错误,超时以及响应用户的取消操作
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(3):保持用户上下文
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(5):服务器端和客户端数据类型的自动转换:基本类型和枚举类型
- 在ASP.NET Atlas中调用Web Service——处理错误,超时以及响应用户的取消操作
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(8):服务器端和客户端数据类型的自动转换:数组类型
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(9):服务器端和客户端数据类型的自动转换:DataTable和DataSet
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(1):调用Web Service、调用页面中的类方法
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(9):服务器端和客户端数据类型的自动转换:DataTable和DataSet
- 在ASP.NET Atlas中调用Web Service——创建Mashup调用远端Web Service(基础知识以及简单示例)
- 在ASP.NET Atlas中调用Web Service——介绍及简单应用
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(6):服务器端和客户端数据类型的自动转换:复杂类型
- 在ASP.NET Atlas中调用Web Service——创建Mashup调用远端Web Service(基础知识以及简单示例)
- 在ASP.NET Atlas中调用Web Service——介绍及简单应用
- 在ASP.NET Atlas中调用Web Service
- 在asp.net Atlas中调用 Web Service时无法找到自定义的Web Service对象的可能原因
- 在ASP.NET Atlas中调用Web Service——创建Mashup调用远端Web Service(Yahoo!天气实例)
- 在ASP.NET Atlas中调用Web Service——处理错误,超时以及响应用户的取消操作
- 在ASP.NET Atlas中调用Web Service——创建Mashup调用远端Web Service(基础知识以及简单示例)