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方法的执行机制有关,还有就是必须要有回调函数,否则即使方法正确执行了,也会在浏览器状态栏中出现缺少对象的错误。