使用Ajaxpro之前,还是来重温下使用Ajaxpro的四个必备条件。(示例下载)
1 添加对Ajaxpro的引用。
2 配置webconfig的httpHandlers 节点,代码如下:
3 在PageLoad中注册类 ,代码如下
AjaxPro.Utility.RegisterTypeForAjax(typeof(Autocomplete2.AjaxproDemo));
4 后台被调用的方法上要写上[AjaxPro.AjaxMethod()] 标记
本示例将采用Ajaxpro根据文本框中输入的关键字从后台取出结果返回到客户端,由于是演示后台使用List作为数据源,数据是用程序添加的,在正式使用时可以换成在数据库中取值的方式。代码如下:
前台代码:
后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
//new using
using System.Data.Linq.SqlClient;
using AjaxPro;
using System.Text;
namespace Autocomplete2
{
///
/// Ajaxpro-Autocomplete
///
public partial class AjaxproDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxproDemo));
}
///根据关键字匹配和关键字相符的结果返回
///
/// "keyWord">关键字
///
[AjaxPro.AjaxMethod()]
public string GetText(string keyWord)
{
List
list.Add(new Content("asp.net mvc"));
list.Add(new Content("asp.net ajax"));
list.Add(new Content("asp.net 教程"));
list.Add(new Content("asp.net 视频教程"));
list.Add(new Content("asp.net 源码"));
list.Add(new Content("asp.net cms"));
list.Add(new Content("asp.net 3.5"));
list.Add(new Content("c# 数组"));
list.Add(new Content("c# 多线程"));
list.Add(new Content("oec2003"));
list.Add(new Content("oec2004"));
list.Add(new Content("oec2005"));
list.Add(new Content("oec2006"));
var q = list.Where(p => p.Title.StartsWith(keyWord)).Take(10);
try
{
if (q.Count() > 0)
{
foreach (var t in q.ToList
{
sb.Append("
"onmouseover=\"setColor(this)\" " +
"onmouseout=\"clearColor(this)\" " +
"style=\"cursor:pointer;width:100%\">" +
t.Title + "");
}
}
return sb.ToString();
}
catch
{
return "";
}
}
}
{
public string Title { get; set; }
{
Title = title;
}
}
}
运行结果如下图:


注:Ajax.net有Ajaxpro.dll和Ajax.dll两个版本,这两个版本在使用时有些区别。
1 webconfig的配置不一样
Ajaxpro.dll的webconfig配置如下:
Ajax.dll的webconfig配置如下 :
2 在客户端调用后台方法时有区别
Ajax.dll在调用时直接写类名.方法名就可以,如下
var result = AjaxproDemo.GetText(keyword).value;
Ajaxpro.dll在调用时要加上命名空间,如下:
var result = Autocomplete2.AjaxproDemo.GetText(keyword).value;