Ajax 在用户控件中的应用(以Google Suggest为例)
事件触发:
<input name="keyword" onkeyup="LoadResults(this.value)" id="keyword" runat="server"/>
客户端主体:
//定义用户控件ID全局变量
var ClientID;
function ShowDiv(divid)
{
//...
}
function HideDiv(divid)
{
//...
}
//页面加载时的处理
function BodyLoad()
{
HideDiv(ClientID + "searchresults");
var findtextbox = document.getElementById(ClientID + "keyword");
findtextbox.focus();
}
function ClearResults()
{
//...(寻找元素时ID前均加 ClientID)
}
function LoadResults(searchterm)
{
//...
// 前加一个ClientID作为参数
Anthem_InvokeControlMethod(
"<%= ClientID %>",
'RetrieveRows',
[searchterm],
LoadResultsCallback);
}
function LoadResultsCallback(result)
{
//...(寻找元素时ID前均加 ClientID)
}
function ReplaceInput(tablecell)
{
//...(寻找元素时ID前均加 ClientID)
}
服务器端主体:
protected void Page_Load(object sender, EventArgs e)
{
Anthem.Manager.Register(this); //注册Anthem
}
[Anthem.Method] // 声明为Anthem前端可感知的方法
public DataTable RetrieveRows(string searchterm)
{
//...
}
//重载页面OnInit事件
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
//获取ClientID值
string jcode = "<mce:script language=\"javascript\" type=\"text/javascript\"><!--
ClientID = '" + this.ClientID + "_" + "';BodyLoad();
// --></mce:script>";
//给客户端页面添加js代码,使前端得到ClientID变量值
Page.ClientScript.RegisterStartupScript(typeof(Page),"suggest_control", jcode);
}
相关文档:
我写了个简单的ajaxlogin登录
情况描述
打开2个页面
第一个页面是ajax登录的页面
第二个页面是登录后收保护的页面
登录第一个页面, 打开受保护的页面2, 在第一个页面登出 并刷新第2个页面由于已经登出就会出现跳到拦截页面CAS的login(这是已经把要跳转的页面存在session里了)
然后在第一个登录页面登录 ......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script type="text/ ......
var xmlhttp;
function verify()
{
//2.创建XmlHttpRequest对象
//这是XmlHttpRequest对象五步中使用最复杂的一步
//需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码
if(window.XMLHttpRequest)
{
......
最近做个人网站遇到AJAX跨子域名的问题。
偶尔看到baidu的通行证处理都是在二级域名passport.baidu.com中处理的,
但是baidu很多地方登录都好像是用ajax处理的,他是怎么做的呢?研究了一下,发现一个小技巧。
不防让大家也借鉴一下。
在http://zhidao.baidu.com/ 未登录用户回答问题时会用iframe调用http://zhidao.bai ......
var xmlHttp;
// 创建XMLHttpRequest对象
function createXMLHttpRequest() {
try {
// FireFox, Opera 8.0 +, Safari
xmlHttp = new XMLHttpRequest();
}
catch ......