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/ ......
WCF的架构:using System.ServiceModel;
契约:Contract
[ServiceContract]
public partial interface IContract
{
[OperationContract]
string DocumentWebHostUrl();
}
服务:Service
[ServiceBehavior(IncludeException ......
http://ajaxcontroltoolkit.codeplex.com/releases/view/33804
1>安装Ajax ASPAJAXExtSetup.msi (在http://ajax.asp.net下载)
2>安装Ajax模板 ASPAJAXSamples.msi
3>下载 最新版本 ajaxcontroltoolkit
http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=AtlasControlToolkit
......