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);
}
相关文档:
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 ......
Background For the basic of how to create an AJAX enabled WCF service, please refer to MSDN: http://msdn.microsoft.com/en-us/library/bb924552.aspx. For the basic of JSONP, please refer to: http://en.wikipedia.org/wiki/JSON#JSONP. This article introduce how to make AJAX enabled WCF service support cr ......