代码改变世界

Ajax学习1

2012-11-26 11:35  露珠的微笑  阅读(142)  评论(0)    收藏  举报
—jQuery.ajax( url, [ settings ] )

url:一个用来包含发送请求的URL字符串。

settings :一个以“{键:值}”组成的AJAX 请求设置。

下面我们看一下常用的setting列表:

—async // boolean,是否同步。跨域请求和dataType: "jsonp"请求不支持同步操作。
—complete(jqXHR, textStatus) // function 函数完成时执行,不论成功或者失败
—data //object,string  {} 需要的参数
—dataType// string (“xml“, ”html“, ”script“, ”json“, ”jsonp“, ”text”),返回类型有多个时用空格分割
—error(jqXHR, textStatus, errorThrown)// function 发生错误时执行(null,"timeout", "error", "abort" 和 "parsererror”)
—success(data, textStatus, jqXHR)// function请求成功后执行
—type// string get/post, PUT 和 DELETE 也可以使用,但仅部分浏览器支持
—url// string 请求需要的地址
—timeout// Number 设置为超时的执行时间
—statusCode// Map 根据函数返回的状态码来执行相应操作,调用方式为:statusCode: {404: function() { alert('page not found');}
—jsonp// string 在一个jsonp请求中重写回调函数的名字。这个值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分
—cache// Boolean是否启用浏览器缓存
—beforeSend(jqXHR, settings)// function请求发送前调用

例子:

$.ajax({ url: 'ajax/test.html',
success: function(data) { $('.result').html(data); } 
    }); 
var jqxhr = $.ajax({ url: "ajax/test.html" }) 
            .success(function() { alert("success"); })
            .error(function() { alert("error"); })
             .complete(function() { alert("complete"); });
jqxhr.beforeSend(function(){ alert("beforeSend"); });
jQuery.get()
jQuery.post()
—相当于:
$.ajax({ url: url,
data: data,
success: success,
dataType: dataType });

后台代码

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
using System.Web.Security;
using Model;
using BLL;

namespace Member
{
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        [WebMethod]
        public static string loginYN(string username, string password)
        {
            tb_admin lg = new tb_admin();
            lg._username = username;
            lg._password = FormsAuthentication.HashPasswordForStoringInConfigFile(password.Trim(), "MD5");
            return BLL_login.loginYN(lg);
        }
    }
}

JS代码

 $(document).ready(function () {
        $('#userId').focus();

        $("#login").click(function () {
            if ($('#userId').val() != "" && $('#pwdId').val() != "") {
                $.ajax({
                    type: 'Post',
                    async: false,
                   //调用后台方法
                    url: 'Login.aspx/loginYN',
                    data: "{'username':'" + $('#userId').val() + "','password':'" + $('#pwdId').val() + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                        if (msg.d == "1") {
                            window.location.href = 'admin/index.aspx';
                        } else {
                            alert("用户名或密码错误!");
                        }
                    },
                    error: function (err) {
                        alert("登录失败!请稍后再试或联系管理员。");
                    }
                });
            }
            else {
                alert("请输入用户名或密码!");
            }
        });

        $("body").bind("keyup", function (e) {
            if (e.keyCode == 13) { $("#login").click(); }
        });
    });

业务层

View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using Model;


namespace BLL
{
   public partial class BLL_login
    {
       public static string loginYN(tb_admin lg)
       {
           return DAL_login.loginYN(lg);
       }
    }
}

底层

View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Web;
using Model;

namespace DAL
{
    public class DAL_login
    {
        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="lg"></param>
        /// 查询用户,不存在返回0,存在且密码相符返回1
        /// <returns></returns>
        public static string loginYN(tb_admin lg)
        {
            string sql = "select * from tb_admin where username = '" + lg._username + "'";
            DataTable table = SqlHelper.GetDataSet(sql);
            if (table.Rows.Count == 0)
            {
                return "0";
            }
            else if (lg._password != Convert.ToString(table.Rows[0][2]).Trim())
            {
                return "0";
            }
            else
            {
                HttpContext.Current.Session["username"] = Convert.ToString(table.Rows[0][1]).Trim();//获取用户登录帐号
                HttpContext.Current.Session["true_name"] = Convert.ToString(table.Rows[0][4]).Trim();//获取用户姓名
                return "1";
            }
        }

    }
}
View Code
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace DAL
{
    public class SqlHelper
    {
        public static SqlConnection connection;
        public static SqlConnection Connection
        {
            get {
                string connectionString = ConfigurationManager.ConnectionStrings                                                                            ["ConnectionString"].ConnectionString;
                if (connection == null)
                {
                    connection = new SqlConnection(connectionString);
                    connection.Open();
                }
                else if (connection.State == System.Data.ConnectionState.Closed)
                {
                    connection = new SqlConnection(connectionString);
                    connection.Open();
                }
                 else if (connection.State == System.Data.ConnectionState.Broken)
                {
                    connection.Close();
                    connection.Open();
                }
                return connection;

            }
        }


        #region 增,删,改ExecuteNonQuery
        /// <summary>
        /// 单个数据增,删,改
        /// </summary>
        /// <param name="safeSql"></param>
        /// <returns></returns>
        public static int ExecuteCommand(string safeSql)
        {
            try
            {
                using (SqlCommand cmd = new SqlCommand(safeSql, Connection))
                {
                    int result = cmd.ExecuteNonQuery();
                    return result;
                }

            }
            catch (SqlException ex)
            {

                throw ex;
            }
        }
        #endregion

        #region 带参数的增,删,改ExecuteNonQuery
        /// <summary>
        /// 带多个参数的增,删,改
        /// </summary>
        /// <param name="safeSql"></param>
        /// <param name="values"></param>
        /// <returns></returns>
        public static int ExecuteCommand(string safeSql, params SqlParameter[] values)
        {
            try
            {
                using (SqlCommand cmd = new SqlCommand(safeSql, Connection))
                {
                    cmd.Parameters.AddRange(values);
                    return cmd.ExecuteNonQuery();
                }
            }
            catch (SqlException ex)
            {
                throw ex;
            }
        }
        #endregion


        #region 带参数的增,删,改ExecuteNonQuery
        /// <summary>
        /// 带多个参数的增,删,改
        /// </summary>
        /// <param name="safeSql"></param>
        /// <param name="values"></param>
        /// <returns></returns>
        public static int ExecuteCommand(string safeSql, CommandType type, params SqlParameter[] values)
        {
            try
            {
                using (SqlCommand cmd = new SqlCommand(safeSql, Connection))
                {
                    cmd.CommandType = type;
                    cmd.Parameters.AddRange(values);
                    cmd.ExecuteNonQuery();
                    return cmd.ExecuteNonQuery();
                }
            }
            catch (SqlException ex)
            {
                throw ex;
            }
        }
        #endregion


        #region 带参数的增,删,改ExecuteNonQuery (Special)
        /// <summary>
        /// 带多个参数的增,删,改
        /// </summary>
        /// <param name="safeSql"></param>
        /// <param name="values"></param>
        /// <returns></returns>
         public static int ExecuteCommand(string safeSql,CommandType type,SqlParameter[] values,int index){
              try
            {
                using (SqlCommand cmd = new SqlCommand(safeSql, Connection))
                {
                    cmd.CommandType = type;
                    SqlParameter paramOne = new SqlParameter("@rid", SqlDbType.Int);
                    paramOne.Value = index;
                    cmd.Parameters.Add(paramOne);
                    return cmd.ExecuteNonQuery();
                }
            }
            catch (SqlException ex)
            {
                throw ex;
            }
        }
      #endregion


        #region 查询语句ExecuteScalar
        /// <summary>
        /// 查单个值
        /// </summary>
        /// <param name="safeSql"></param>
        /// <returns></returns>
         public static int GetScalar(string safeSql)
         {
             try
             {
                 using (SqlCommand cmd = new SqlCommand(safeSql, Connection))
                 {
                     int result = Convert.ToInt32(cmd.ExecuteScalar());
                     return result;
                 }
             }catch(SqlException ex){
                 throw ex;
             }
         }
        #endregion


         #region 带参数的查询语句ExecuteScalar
         /// <summary>
         /// 带参数的查询语句
         /// </summary>
         /// <param name="sql"></param>
         /// <param name="values"></param>
         /// <returns></returns>
         public static int GetScalar(string sql, params SqlParameter[] values)
         {
             try
             {
                 using (SqlCommand cmd = new SqlCommand(sql, Connection))
                 {
                     cmd.Parameters.AddRange(values);
                     int result = Convert.ToInt32(cmd.ExecuteScalar());
                     return result;
                 }
             }
             catch (SqlException ex)
             {

                 throw ex;
             }
         }
         #endregion


         #region 带执行类型的ExecuteScalar
         /// <summary>
         /// 带执行类型的ExecuteScalar
         /// </summary>
         /// <param name="sql"></param>
         /// <param name="type"></param>
         /// <param name="values"></param>
         /// <returns></returns>
         public static int GetScalar(string sql, CommandType type, params SqlParameter[] values)
         {
             try
             {
                 using (SqlCommand cmd = new SqlCommand(sql, Connection))
                 {
                     cmd.CommandType = type;
                     cmd.Parameters.AddRange(values);
                     int result = Convert.ToInt32(cmd.ExecuteScalar());
                     return result;
                 }
             }
             catch (SqlException ex)
             {
                 throw ex;
             }
         }
         #endregion



         #region 返回DataReader
         /// <summary>
         /// 查询表,获取多个记录
         /// </summary>
         /// <param name="safeSql"></param>
         /// <returns></returns>
         public static SqlDataReader GetReader(string safeSql)
         {
             try
             {
                 using (SqlCommand cmd = new SqlCommand(safeSql, Connection))
                 {
                     SqlDataReader reader = cmd.ExecuteReader();
                     return reader;
                 }

             }
             catch (SqlException ex)
             {

                 throw ex;
             }
         }
         #endregion



         #region 带参数DataReader
         /// <summary>
         /// 带参数的-查询表,获取多个记录
         /// </summary>
         /// <param name="sql"></param>
         /// <param name="values"></param>
         /// <returns></returns>
         public static SqlDataReader GetReader(string sql, params SqlParameter[] values)
         {
             try
             {
                 using (SqlCommand cmd = new SqlCommand(sql, Connection))
                 {
                     cmd.Parameters.AddRange(values);
                     SqlDataReader reader = cmd.ExecuteReader();
                     return reader;
                 }
             }
             catch (SqlException)
             {

                 throw;
             }


         }
         #endregion



         #region 返回DataReader ,语句,类型,参数
         /// <summary>
         /// 查询表,获取多个记录---语句,类型,参数
         /// </summary>
         /// <param name="safeSql"></param>
         /// <param name="cmdType"></param>
         /// <param name="values"></param>
         /// <returns></returns>
         public static SqlDataReader GetReader(string safeSql, CommandType cmdType, params SqlParameter[] values)
         {
             try
             {
                 using (SqlCommand cmd = new SqlCommand(safeSql, Connection))
                 {
                     cmd.CommandType = cmdType;
                     cmd.Parameters.AddRange(values);
                     SqlDataReader reader = cmd.ExecuteReader();
                     return reader;
                 }

             }
             catch (SqlException ex)
             {

                 throw ex;
             }

         }
         #endregion



         #region 返回dataTable
         /// <summary>
         /// 返回datatable
         /// </summary>
         /// <param name="safeSql"></param>
         /// <returns></returns>
         public static DataTable GetDataSet(string safeSql)
         {
             DataSet ds = new DataSet();
             SqlCommand cmd = new SqlCommand(safeSql, Connection);
             SqlDataAdapter da = new SqlDataAdapter(cmd);
             da.Fill(ds);
             return ds.Tables[0];
         }
         #endregion


         #region 返回dataTable ,带参数
         /// <summary>
         ///  返回dataTable ,带参数使用
         /// </summary>
         /// <param name="sql"></param>
         /// <param name="values"></param>
         /// <returns></returns>
         public static DataTable GetDataSet(string sql, params SqlParameter[] values)
         {
             DataSet ds = new DataSet();
             SqlCommand cmd = new SqlCommand(sql, Connection);
             cmd.Parameters.AddRange(values);
             SqlDataAdapter da = new SqlDataAdapter(cmd);
             da.Fill(ds);
             return ds.Tables[0];
         }
         #endregion

    }
}