1、点击后要判断登录的HTML代码(发送数据的页面部分代码)
<asp:ImageButton ID="ibshop" runat="server" ImageUrl="~/images/cart.gif" OnClientClick="return cklogin();" OnClick="ibshop_Click" />
2、定义xmlhttprequest对象实现AJAX的JS代码
var xmlHttpjs;
function cklogin()
{
var parm=new Date();
var url="cklogin.aspx?parm="+escape(parm.toString());//从发送数据的页面提交数据给处理页面
if (window.ActiveXObject) {
xmlHttpjs = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttpjs = new XMLHttpRequest();
}
xmlHttpjs.open("GET",url,false);
xmlHttpjs.onreadystatechange = callbacklogin;//xmlhttprequest对象的onreadystatechange属性值改变后的回调函数
xmlHttpjs.send(null);
if(callbacklogin())
{
return true;
}
{
alert("您还未登录,请先登录!");
return false;
}
}
function callbacklogin()//得到处理页面发回的数据后再局部更新或处理发送数据的页面内容
{
if (xmlHttpjs.readyState == 4)
{
if (xmlHttpjs.status == 200)
{
if(xmlHttpjs.responseText.indexOf("[$0$]")>=0)
{
return true;
}
else
{
return false;
}
}
}
}
3、数据处理页面的视图代码跟CS代码
3-1、cklogin.aspx视图代码,只保留一行代码,返回的数据就是Response.write返回的数据,没有额外的HTML代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="cklogin.aspx.cs" Inherits="cklogin" %>
3-2、cklogin.aspx.cs代码
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class cklogin : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["parm"] != null)
{
Response.Write("[$" + ck() + "$]" + "(" + Request.QueryString["parm"].ToString() + ")");
}
}
private string ck()
{
if (Session["un"]!=null&&Session["un"].ToString()!="")
{
return "0";
}
else
{
return "1";
}
}
}