AJAX俺也不会,是真的,不过,以后就会了
2007-03-11 22:59
197 查看
AJAX俺也不会,是真的,不过,以后就会了,因为俺要学习了,呵呵,先把下面的文章收藏起来:
Ajax研究小结 ((作者:李天平 转载请注明))
转自:/article/4626679.html
Ajax最近可谓是流行加火热,为web开发中的刷新问题带来了新的生机与希望。虽然这项技术在很久以前就有人在用,无非是XMLHttpRequest JavaScript的几项技术按一定的方式组合,也算不得什么新技术,但挂了一个名,做了一个封装,还是为不少开发人员提供了很多便捷。因此,我也抽出时间来研究了一下,并且应用到当前的项目里,同时做个小结放在这里。
具体使用:
1. 在项目中添加引用Ajax.dll (我用的版本是5.7.22.2)
2. 修改web.config,在里面增加
<configuration>
<system.web>
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
<system.web>
</configuration>
3. 新建一个实现业务逻辑的类,并在里面增加方法,在方法上面加上[Ajax.AjaxMethod()]。如:
/// <summary>
/// 业务逻辑的类
/// </summary>
public class AjaxBLLClass
{
public AjaxBLLClass()
{
}
[Ajax.AjaxMethod()]
public string GetPlaceList(int ClassID)
{
Advertisement.BLL.ADManage.AdPlace adplace=new Advertisement.BLL.ADManage.AdPlace();
DataSet ds=adplace.GetListByClass(ClassID);
string str="";
for(int m=0;m<ds.Tables[0].Rows.Count;m++)
{
str+=","+ds.Tables[0].Rows[m]["PlaceID"].ToString()+"|"+ds.Tables[0].Rows[m]["PlaceName"].ToString();
}
str=str.Substring(1,str.Length-1);
return str;
}
4. 在调用页的.cs的Page_Load事件中增加一行类注册代码
private void Page_Load(object sender, System.EventArgs e)
{
//注册类获得有效的方法
Ajax.Utility.RegisterTypeForAjax(typeof(AjaxBLLClass));
}
注意:typeof(AjaxBLLClass)中,AjaxBLLClass是要包含要调用方法的类,即上面第3步新建的业务逻辑类AjaxBLLClass
5. 在调用页页面文件中或者单独写一个js文件,用Javascript代码调用业务逻辑的类的方法。如:
function classResult()
{
var classid=document.getElementById("DropClassID");
AjaxBLLClass.GetPlaceList(classid.value,get_class_Result_CallBack);//调用业务逻辑类方法
}
function get_class_Result_CallBack(response)
{
if (response.value != null)
{
document.getElementById("DropPlaceID").length=0;
var piArray = response.value.split(",");
for(var i=0;i<piArray.length;i++)
{
var ary1 = piArray[i].toString().split("|");
document.getElementById("DropPlaceID").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
}
}
return
}
6. 调用
<asp:dropdownlist id="DropClassID" runat="server" Width="250px" onchange=” classResult()”></asp:dropdownlist>
注:如果是低版本的Ajax需修改Global.asax的Application_Start事件,设置Ajax的HandlerPath :
protected void Application_Start(Object sender, EventArgs e)
{
//Ajax.Utility.HandlerPath = "ajax";//老版本的需要
}
使用感受:个人认为虽然它从一定程度上解决了页面的刷新问题,但却需要写大量的脚本代码,并且和.net的控件和类库结合还不是很好,还不适合在项目里大量地使用,在一些对刷新要求不是太高的地方还是用ASP.NET的编码方式好一些。
示例代码下载
附上一些Ajax资源:
http://ajax.schwarz-interactive.de
http://weblogs.asp.net/mschwarz/
http://groups.google.com/group/ajaxpro?lnk=li
MSDN上的Atlas 网站
ASP.NET "Atlas" 官方网站
ASP.NET "Atlas" 预览文档
Atlas 快速入门教程
Ajax研究小结 ((作者:李天平 转载请注明))
转自:/article/4626679.html
Ajax最近可谓是流行加火热,为web开发中的刷新问题带来了新的生机与希望。虽然这项技术在很久以前就有人在用,无非是XMLHttpRequest JavaScript的几项技术按一定的方式组合,也算不得什么新技术,但挂了一个名,做了一个封装,还是为不少开发人员提供了很多便捷。因此,我也抽出时间来研究了一下,并且应用到当前的项目里,同时做个小结放在这里。
具体使用:
1. 在项目中添加引用Ajax.dll (我用的版本是5.7.22.2)
2. 修改web.config,在里面增加
<configuration>
<system.web>
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
<system.web>
</configuration>
3. 新建一个实现业务逻辑的类,并在里面增加方法,在方法上面加上[Ajax.AjaxMethod()]。如:
/// <summary>
/// 业务逻辑的类
/// </summary>
public class AjaxBLLClass
{
public AjaxBLLClass()
{
}
[Ajax.AjaxMethod()]
public string GetPlaceList(int ClassID)
{
Advertisement.BLL.ADManage.AdPlace adplace=new Advertisement.BLL.ADManage.AdPlace();
DataSet ds=adplace.GetListByClass(ClassID);
string str="";
for(int m=0;m<ds.Tables[0].Rows.Count;m++)
{
str+=","+ds.Tables[0].Rows[m]["PlaceID"].ToString()+"|"+ds.Tables[0].Rows[m]["PlaceName"].ToString();
}
str=str.Substring(1,str.Length-1);
return str;
}
4. 在调用页的.cs的Page_Load事件中增加一行类注册代码
private void Page_Load(object sender, System.EventArgs e)
{
//注册类获得有效的方法
Ajax.Utility.RegisterTypeForAjax(typeof(AjaxBLLClass));
}
注意:typeof(AjaxBLLClass)中,AjaxBLLClass是要包含要调用方法的类,即上面第3步新建的业务逻辑类AjaxBLLClass
5. 在调用页页面文件中或者单独写一个js文件,用Javascript代码调用业务逻辑的类的方法。如:
function classResult()
{
var classid=document.getElementById("DropClassID");
AjaxBLLClass.GetPlaceList(classid.value,get_class_Result_CallBack);//调用业务逻辑类方法
}
function get_class_Result_CallBack(response)
{
if (response.value != null)
{
document.getElementById("DropPlaceID").length=0;
var piArray = response.value.split(",");
for(var i=0;i<piArray.length;i++)
{
var ary1 = piArray[i].toString().split("|");
document.getElementById("DropPlaceID").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
}
}
return
}
6. 调用
<asp:dropdownlist id="DropClassID" runat="server" Width="250px" onchange=” classResult()”></asp:dropdownlist>
注:如果是低版本的Ajax需修改Global.asax的Application_Start事件,设置Ajax的HandlerPath :
protected void Application_Start(Object sender, EventArgs e)
{
//Ajax.Utility.HandlerPath = "ajax";//老版本的需要
}
使用感受:个人认为虽然它从一定程度上解决了页面的刷新问题,但却需要写大量的脚本代码,并且和.net的控件和类库结合还不是很好,还不适合在项目里大量地使用,在一些对刷新要求不是太高的地方还是用ASP.NET的编码方式好一些。
示例代码下载
附上一些Ajax资源:
http://ajax.schwarz-interactive.de
http://weblogs.asp.net/mschwarz/
http://groups.google.com/group/ajaxpro?lnk=li
MSDN上的Atlas 网站
ASP.NET "Atlas" 官方网站
ASP.NET "Atlas" 预览文档
Atlas 快速入门教程
相关文章推荐
- AJAX俺也不会,是真的,不过,以后就会了
- AJAX俺也不会,是真的,不过,以后就会了
- AJAX俺也不会,是真的,不过,以后就会了
- 周鸿祎:不会找合伙人,不配做创业者 --你自己创业是因为不愿意给别人打工,为什么你觉得别人就会愿意一直为你打工呢?
- 有些事情如果现在不做,以后也不会做了
- hdu 1011 树dp还是容易理解的,不过在做这个题的时候把一个边界条件给忽略了,以后得注意
- Ajax异步请求,如何把成功以后接收过来的data输出到控制台
- ajaxFileUpload 报这错jQuery.handleError is not a function (注:内容完全是转载,只是便于以后自己查阅)
- IE内核发送ajax请求时不会将url中的参数编码
- Android 判断是否要进入引导页(引导页只需在安装后的第一次显示,以后不会显示)
- 今天的问题以后不会再出现,host配置文件导致机器老连不上其他主机
- 在w3cschool学完html,css,javascript,jquery以后,还是不会做前端怎么办?
- 并查集详解,不会的同学可以来瞅瞅,转载的,不过加了一些自己的理解。
- 记一次ConVirt安装错误、希望以后这样的小错误不会再犯。
- 不选“使用24小时格式”以后,状态栏不会显示“上午”和“下午”
- cocos2dxlua 触屏事件(以后全部使用图片做触屏,不会遮挡,layer默认铺满全屏,会遮挡)
- SpringMVC下Ajax请求的方法,@Responsebody如果返回的是布尔值,ajax不会接到任何回传数据
- 为什么我用ajax以post方式传递变量时只要开头有空格就会得不到任何值?
- 本地HTMLajax跨域请求携带cookie数据,请求不会被登录拦截器拦截