[ 来源:http://www.it55.com | 作者: | 时间:2007-12-11 | 收藏 | 推荐 ] 【大 中 小】
个人认为asp.net ajax是众多ajax框架中功能最强大,也是最完善的(呵呵:究竟也是微软公司的产品嘛)。并且在客户端的许多编程风格经过微软公司对javascrpt的扩展后,很像asp.net编程风格:(关于asp.net ajax对javascript的扩展文档请参照,Dflying大大的文章:http://www.cnblogs.com/dflying/archive/2007/02/09/639638.html。)
个人认为最好用的几个扩展:
var cityList=new Sys.StringBuilder(""); //具体功能类似asp.net的StringBuilder:在字符串的连接中可提高速度
for(var i=0;i<result.length;i++)
{
//String.formate:它在asp.net中大家应该常用它吧,用在客户端编程也超爽。
var tabRow=String.format("<div class='row' id='lb{0}'><label>{0}:</label>{1} <a href='javascript:void(0)' onclick='onDel({0})'>Del</a></div>",result[i].ClassID,result[i].ClassName);
cityList.append(tabRow);
}
还有很多扩展,及其javascript面向对象编程,都是挺有意思的。
需要微软对javascript作了大量的扩展,但个人认为易用性还是不够,所以我在使用的时时候,客户端编程大多还是用Jquery去做,至于jquery库我就没啥资资格说了。
转入正题:下面是我用asp.net ajax客户端编程结合jquery实现泛型数据的客户端调用,数据的添加和删除操作。
第一步:相关环境配置:
(一)、Web.config配置(后边提供一个完整的供下载)
(二)、页面上一的一些配置
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="AjaxScript/CityList.js" />
</Scripts>
<Services>
<asp:ServiceReference Path="service/CityService.asmx" />
</Services>
</asp:ScriptManager>
ScriptManager的声明重要性不说了,一名话:你要用asp.net ajax编程就不能没有这主。<scripts>:调用js文件;<Services>:调用web services文件,
我是把客户端的代码是写在CityList.js文件中的,而ajax调用的服务端程序是放在:CityService.asmx里的.当然页面上还有:<script type="text/javascript" src="http://www.aspcool.com/lanmu/scripts/jquery.js"></script> jquery的调用.
下面是:CityList.js完整程序:
第二步:JS文件
// JScript 文件
var cityClass=new Object(); //定义对象,添加时使用,这个在asp.net中相当于定义了一个实体。
// 页面加载处理
$(document).ready(function() {
hiddeProgress();//隐藏加载动画的div
showCityList();//实现数据的调用
});
// (公用函数)显示加载进程
var showProgress=function()
{
$("#progress").fadeIn("fast");
}
// (公用函数)隐藏加载进程
var hiddeProgress=function()
{
$("#progress").hide();
}
//显示列表:显示调用
var showCityList=function()
{
showProgress();
CityService.CityList(onSuccees); //调用web service中的过程,其中CityService是类名,CityList是函数,返回调用成功处理函数是onSuccees
}
//显示列表明:处理显示结果
var onSuccees=function(result)
{
hiddeProgress();
var cityList=new Sys.StringBuilder("");
for(var i=0;i<result.length;i++) //通过循环直接调用泛型数据记录集,太牛了
{
var tabRow=String.format("<div class='row' id='lb{0}'><label>{0}:</label>{1} <a href='javascript:void(0)' onclick='onDel({0})'>Del</a></div>",result[i].ClassID,result[i].ClassName); //这里就是String.format取数据的格式
(编辑:IT资讯之家 www.it55.com)