<%@ WebHandler Language="C#" Class="ajaxload" %> using System; using System.Web; public class ajaxload : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.COntentType= "text/plain"; string word = context.Request.Params["word"]; context.Response.Write(string.Format("
More intorduction of {0} is here....
",word)); } public bool IsReusable { get { return false; } } } 前台代码如下: 代码如下:
function LoadGame() { $.getJSON('FastBuy.ashx', function(data) { var sel = $('#SelectGame')[0]; sel.innerHTML = ""; $.each(data, function(entryIndex, entry) { var op = new Option(entry); sel.options.add(op); }); $('#SelectGame')[0].selectedIndex = 0; var game = $('#SelectGame').val(); LoadServer(game); }); } 首先清空当前列表,$.each函数能够遍历第一个参数中的每个值,依次调用第二个参数的函数。并把值传给entry参数。此时jQuery已经把JSON数据解析成Javascript对象,这里是一个字符串的数组。 function LoadServer(game) { 代码如下:
$.getJSON('FastBuy.ashx',{Game:game},function(data) { var sel = $('#SelectServer')[0]; sel.innerHTML = ""; $.each(data, function(entryIndex, entry) { var op = new Option(entry); sel.options.add(op); }); $('#SelectServer')[0].selectedIndex = 0; LoadAmount(game, $('#SelectServer').val()); }); } 加载Server数据的过程是类似的。 代码如下:
function LoadAmount(game, server) { $.getJSON('FastBuy.ashx', {Game:game,Server:server}, function(data) { var sel = $('#SelectAmount')[0]; sel.innerHTML = ""; $.each(data, function(entryIndex, entry) { var op = new Option(entry['AmountAttr'], entry['ID']); sel.options.add(op); }); }); } 最后是加载Amount,这里稍微有一点不同,此时data中的数据不是简单的字符串了,而是一个有属性的对象,可以用entry[‘ID‘]这样的表达式来获取表达式。在这个例子中,entry[‘ID‘]就是一个简单的数字了。当然它完全可以是另一个复杂的对象或者数组,依服务器返回的JSON数据而定。 有了这些准备工作,我们只要在ready函数中为下拉列表注册下处理函数了: 代码如下: