AjaxPro组件的应用(实现Ajax)

1.首先在页面初始化事件Page_Load(object sender, EventArgs e)中注册编写的类

protected void Page_Load(object sender, EventArgs e)
    {
                AjaxPro.Utility.RegisterTypeForAjax(typeof(fadataset));    //注册fadataset类

    }

2.fadataset类的实现

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
/// <summary>
/// fadataset 的摘要说明
/// </summary>
public class fadataset
{
    [AjaxPro.AjaxMethod]                         //表示为AjaxPro方法

/// <summary>
/// fadataset 的摘要说明

///pageid分页号 tbname表名 jltj 所查询的记录符合的条件   zsy 表对应的主索引

/// datasetfa方法获得指定分页中的记录

/// datasetfa_faid方法通过输入指定的SQL语句得到所要的记录


/// </summary>

    public DataSet datasetfa(int pageid,string tbname,string jltj,string zsy)                                   //数据集框架
{
        string Con = ConfigurationManager.ConnectionStrings["spjkconn"].ConnectionString;

        SqlConnection conn = new SqlConnection(Con);

        SqlDataAdapter da = new SqlDataAdapter();

        da.SelectCommand = new SqlCommand();

        da.SelectCommand.Connection = conn;

        da.SelectCommand.CommandText = "pagination";                     //获得记录总数存储过程

        da.SelectCommand.CommandType = CommandType.StoredProcedure;

        SqlParameter param = new SqlParameter("@pageid", SqlDbType.Int);

        param.Direction = ParameterDirection.Input;                   //分页号输入参数

        param.Value = pageid;

        SqlParameter param1 = new SqlParameter("@tabname", SqlDbType.VarChar);

        param1.Direction = ParameterDirection.Input;

        param1.Value = tbname;

        SqlParameter param2 = new SqlParameter("@cxtj", SqlDbType.VarChar);

        param2.Direction = ParameterDirection.Input;     //查询条件

        param2.Value = jltj;

        SqlParameter param3 = new SqlParameter("@index", SqlDbType.VarChar);

        param3.Direction = ParameterDirection.Input;

        param3.Value = zsy;                                                //主索引字段

        da.SelectCommand.Parameters.Add(param);

        da.SelectCommand.Parameters.Add(param1);

        da.SelectCommand.Parameters.Add(param2);

        da.SelectCommand.Parameters.Add(param3);

        DataSet ds = new DataSet();

        da.Fill(ds);

        conn.Close();

        return ds;

}

    [AjaxPro.AjaxMethod]

    public DataSet datasetfa_faid(string cmdstr)
    {

        string Con = ConfigurationManager.ConnectionStrings["spjkconn"].ConnectionString;

        SqlConnection conn = new SqlConnection(Con);

        conn.Open();

        SqlDataAdapter adpt = new SqlDataAdapter(cmdstr, conn);

        DataSet ds = new DataSet();

        adpt.Fill(ds);

        conn.Close();

        return ds;
    }

}

3.在web.config文件中的<httpHandlers></httpHandlers>的节中加入

<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>

4.在Javascript中调用的方法是:

类名.方法(参数,回调函数)

回调函数格式:function 回调函数名(res)

{

                        //res存储的是返回的结果,可进一步对其进行处理

}

注:有时在执行AjaxPro方法时出现注册的类没有定义,解决方法为将调用的语句放到<form id="form1" runat="server"><form/>中,跟AjaxPro方法的执行机制有关,还有就是必须要有回调函数,否则即使方法正确执行了,也会在浏览器状态栏中出现缺少对象的错误。

posted on 2010-12-27 10:08  carekee  阅读(192)  评论(0编辑  收藏  举报