dojo在ASP.NET中使用Ajax初步

   我想先介绍一下dojo中的浏览器事件,由于不同的浏览器对dom事件的支持是不同的,dojo在这方面做了统一的封装,所以使用dojo不用担心浏览器事件不兼容的问题。问题也就由此而来,由于要兼容不同的浏览器事件,dojo中的事件与某一个浏览器的事件在命名上也就有所区别(昨晚上就是卡在这了)。请先看下面的一个网址:

http://http://www.bianceng.cn/webkf/Dojo/201101/23290_5.htm

现在来看一下我们的例子:

<script type="text/javascript" language=javascript src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo.js"
                data-dojo-config="isDebug: true, async: true">
        </script>

 引入dojo.js,1.7以后dojo将使用AMD架构,想要了解AMD的可以在网上查,这里不赘述了

<script type="text/javascript" language=javascript>
            require(["dojo/_base/xhr", "dojo/on", "dojo/dom", "dojo/domReady!"], function (xhr, on, dom) {

                function refresfContent() {

                    var sname = dom.byId("txtName").value;
                    //使用GET方式
                    xhr.get({
                        //请求页面
                        url: "WebForm2.aspx",
                        //参数
                        content: { name: sname },
                        //当执行成功时调用的方法
                        load: function (newContent) {
                            dom.byId("txtSuggestion").value = newContent;
                        },
                        //失败时调用的方法
                        error: function () {
                            alert("error");
                        }
                    });
                    //alert(sname);
                }
                //绑定事件,在IE中按键弹起事件是“onkeyup”
                on(dom.byId("txtName"), "keyup", refresfContent);
            })
        </script>

<body>
    <form id="form1" runat="server">
    <div>
    姓名:<input type="text" id="txtName"  /> <br />
    建议:<input type="text" id="txtSuggestion" name="txtSuggestion" />
    </div>
    </form>
</body>

其实xhr只是一个被dojo封装了的XMLHttpRequest,使用dojo我们可以声明一个xhr的变量而不用考虑具体的浏览器,比如:

if (window.XMLHttpRequest) {
                XmlHttp = new XMLHttpRequest();

            }
            else if (window.ActiveXObject) {
                XmlHttp = new ActiveXObject("Microsoft.XMLHTTp");
            }
            else {
                alert("您的浏览器不支持XMLHTTPRequest");
                return;
            }

 然后咱们看一下服务器端的代码,很简单的(借用了一下群哥的代码):

protected void Page_Load(object sender, EventArgs e)
        {
           // string b = Request["callback"];

                    string name =Context.Request["name"];
                    if (name != null)
                    {
                        string result = GetSuggestion(name);
                        Response.Write(result);
                        Response.Flush();
                        Response.End();//Response.End把前面的内容都输出了,阻止了后面html相关内容的输出
                    }
        }
        private string GetSuggestion(string name)
        {
            string suggestion = string.Empty;
            if (name != null)
            {
                if (name.Length == 1)
                {
                    if (name == "s")
                    {
                        suggestion = "qun ge";
                    }
                    else if (name == "z")
                    {
                        suggestion = "qun sao";
                    }
                    else
                    {
                        suggestion = "No suggestion";
                    }
                }
                else
                {
                    suggestion = "No Suggestion";
                }
            }
            else
            {
                suggestion = "No Suggestion";
            }

            return suggestion;
        }
时间: 2024-10-30 02:10:29

dojo在ASP.NET中使用Ajax初步的相关文章

在ASP.NET中实现AJAX

ajax|asp.net Asynchronous JavaScript and XML(AJAX)最近掀起的高潮,要完全归功于Google在Google Suggest和Google Maps中的使用.对ASP.NET而言,AJAX不需要回传就能进行服务器端处理,从而使客户机(浏览器)具有丰富的服务器端能力.换句话说,它为异步指派和处理请求与服务器响应提供了一个框架.AJAX利用了一些不是很新颖的已有技术,但是对这些技术(加到一起就是AJAX)的爱好最近突然升温. 请尝试Michael Sch

asp.net 中 通过ajax请求一般处理程序,可是请求头中的cookie

问题描述 asp.net 中 通过ajax请求一般处理程序,可是请求头中的cookie asp.net 中 通过ajax请求一般处理程序,可是请求头中的cookie只有一条 ,请问大侠们,cookie有限制吗?我并没有跨域请求啊 解决方案 asp.net Ajax Post 请求 一般处理程序 解决方案二: cookie 里边存储的是两个键值对,可是请求头中只携带了一个键值对.不知道为什么 解决方案三: cookie 里边存储的是两个键值对,可是请求头中只携带了一个键值对.不知道为什么 解决方案

ASP.NET中使用AJAX中的方式

asp.net的控件也封装了html控件,使用js操作不是这么直接. 根据Surance( http://www.fltek.com.cn/)研究发现,在asp.net中,有3种方法使用ajax比较简单.算是ms的一个补偿方案来的. 一个是PageMethod,一个是使用ICallbackEventHandler,还有一个是用ms自带的ajax控件. 分别举例说明,以下例子要实现的功能为: 在页面有一个div,一个按钮.点击按钮要调用后台方法获取一个时间,然后将时间写入div.要求页面不刷新 另

在ASP.NET中实现AJAX(1)

ajax|asp.net Asynchronous JavaScript and XML(Ajax)最近掀起的高潮,要完全归功于Google在Google Suggest和Google Maps中的使用.对ASP.NET而言,Ajax不需要回传就能进行服务器端处理,从而使客户机(浏览器)具有丰富的服务器端能力.换句话说,它为异步指派和处理请求与服务器响应提供了一个框架. Ajax利用了一些不是很新颖的已有技术,但是对这些技术(加到一起就是Ajax)的爱好最近突然升温. 请尝试Michael Sc

使用ObjectDataSource控件在ASP.NET中实现Ajax真分页

ASP.NET 3.5中新增加的ListView控件是一个用于页面数据绑定和界面布局的非常棒的控件,它在 ASP.NET 2.0 GridView的基础上做了很多改进,用户在使用时可以控制的元素更多,开发时的灵活性更大 了,个人觉得ListView在使用时比DataGrid和GirdView更加顺手.ListView控件本身并没有分页功能,不 过借助于ASP.NET中新增加的DataPager控件,我们可以非常方便地对ListView中的数据设置分页,这几乎 不需要开发人员写一行代码,将List

在ASP.NET中使用AJAX实时搜索功能控件--RealTimeSearchMonitor

Web Client Software Factory v2.0包含了一个RealTimeSearchMonitor控件 提供实时搜索功能 来帮助你在ASP.NET中使用ASP.NET AJAX 局部更新网页. 此文章帮助你 如何在ASP.NET 中使用 RealTimeSearchMonitor控件,数据来自Northwind数据库的Customers表,数据访问是用企业库写的,当然你也可以使用别的任何方式返回数据源,,不过不用企业库写个SQL语句还真是够复杂!!! 先决条件 使用realti

asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页_实用技巧

ListView控件本身并没有分页功能,不过借助于ASP.NET中新增加的DataPager控件,我们可以非常方便地对ListView中的数据设置分页,这几乎不需要开发人员写一行代码,将ListView控件放到页面上,设置好布局和DataSource,然后再添加一个DataPager控件,将它的PagedControlID属性设置成ListView的ID,PageSize中设置每页要显示的数据条数,然后在Fields中设置好分页的样式(当然你完全可以不用去管样式,ASP.NET会根据内置的样式来

asp.net中jquery $.ajax实现数据调用实现

最近在ASP.NET中做了一个AJAX调用 : Client端先从ASP.NET Server后台取到一个页面模板,然后在页面初始化时再从Server中取一些相关数据以实现页面模板的动态显示.具体实现为: 1)      Client向 ASP.NET后台发送HTTP GET 请示 2)      后台给Client发送一个HTML模板,同时在内存中存储一个XML  String  (包含页面模板动态显示所需的数据) 3)      Client在初始化页面时,发送AJAX请求,拿到XML St

ASP.NET中数据库操作初步_自学过程

一.定义OleDbCommand类型变量:MyCommand 要对数据库进行增加.删除.修改的操作我们还需要根据MyConnectio的类型定义一个OleDbCommand或者SqlCommand对象(请注意如果MyConnection是OleDbConnection类型,那么只能用OleDbCommand:如果MyConnection是SqlConnection类型,那么那么只能用SqlCommand.这里假设MyConnection是OleDbConnection类). 方法一 你可以象拖放