小研究了一下如何用Ajax.dll实现上一个例子,很沮丧,因为使用人家的方法,更简单,代码更少,而且仅仅是它的皮毛而已。所以,如果做项目要用到Ajax,建议研究一下框架,比如说Ext。它的类库和文档相当丰富,简单易上手。

    好吧,我把实现过程列出来。首先我们需要一个Ajax.dll文件,这个自己去找吧!放到项目中,并添加好引用。首先,你需要一个类,随意命名为“AjaxMethod.cs”代码如下:

    namespace Test.AjaxTest

    {

    /// <summary>

    /// AjaxMethod 的摘要说明。

    /// </summary>

    public class AjaxMethod

    {

    public AjaxMethod() {}

    //数据库查询操作

    [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]

    public DataSet GetList(string id)

    {

    string sql = "select CityName,CityCode from City where [ID]=" + id;

    return SelectData(sql); //调用下面的方法

    }

    //

    private DataSet SelectData(string sql)

    {

    //数据库链接定义:

    //Web.config中<configuration><appSettings></appSettings></configuration>

    //中添加定义:<add key="ConnectionString" value="data source=localhost;

    // initial catalog=helpdesk1; user id=sa; password=sa; "></add>

    string cs = System.Configuration.ConfigurationSettings .AppSettings["ConnectionString"];

    //或者直接这样定义

    //string cs = "Server=(local);UID=sa;PWD=sa;Database=HelpDesk1";

    SqlDataAdapter sda = new SqlDataAdapter(sql,cs);

    DataSet ds = new DataSet();

    sda.Fill(ds);

    return ds;

    }

    }

    }

  接下来是你要实现效果的页面a.aspx,<body>部分很简单:

    <body>

    <form />

    </httpHandlers>

    延伸:我们完全可以将AjaxMethod写成一个公共Page,将调用业务层代码的方法添加进来。如此,便可以不用在那里面定义数据库链接了——我们要得到的仅仅是一个DataTable,而不必关心用什么样的方式得到它。这样的设计与项目框架的结合将更紧密。

相关文章: