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);
}
相关文档:
最近网上提的很多的一个新概念就是 AJAX 了, 那么, AJAX 是什么呢? 以下内容引用网上资料:
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它有机地包含了以下几种技术:
Ajax(Asynchronous JavaScript + XML)的定义
基于 web标准(sta ......
前后端的交互是整个框架的中心,我希望从流的角度来设计AJAX的交互
AJAX的设计将横贯前后端
前端是主动
后端是被动
整体考虑的话 前后端使用一个统一的接口进行AJAX交互
后端 用一个唯一的URL来处理 AJAX请求
接口名称 处理接口:[http://域名/mvc.ajax] 封装所有的AJAX请求的预处理
......
WCF的架构:using System.ServiceModel;
契约:Contract
[ServiceContract]
public partial interface IContract
{
[OperationContract]
string DocumentWebHostUrl();
}
服务:Service
[ServiceBehavior(IncludeException ......
首先要说的就是 ajax 是无法实现上传文件的,可以想一下ajax与后台通信都是通过传递字符串,怎么能传递文件呢?其实出于安全考虑js是不能操作文件的,所以就不要再说用ajax来实现文件的上传了,这是不可能的。
而本文实现的文件上传也是无页面刷新的,可以说是一种"类似AJAX"方法。
&n ......
var xmlHttp;
// 创建XMLHttpRequest对象
function createXMLHttpRequest() {
try {
// FireFox, Opera 8.0 +, Safari
xmlHttp = new XMLHttpRequest();
}
catch ......