在ASP.NET中实现AJAX(3)(转载)
来源:互联网 发布:打开软件显示乱码 编辑:程序博客网 时间:2024/06/05 20:41
在ASP.NET中实现AJAX(3)(转载)
处理类型
返回复杂类型
Ajax包装器不仅能处理ServerSideAdd函数所返回的整数。它目前还支持integers、strings、double、booleans、DateTime、DataSets和DataTables,以及自定义类和数组等基本类型。其他所有类型都返回它们的ToString值。
返回的DataSets和真正的.NET DataSet差不多。假设一个服务器端函数返回DataSet,我们可以通过下面的代码在客户端显示其中的内容:
<script language="JavaScript">
//Asynchronous call to the mythical "GetDataSet" server-side function
function getDataSet(){
AjaxFunctions.GetDataSet(GetDataSet_callback);
}
function GetDataSet_callback(response){
var ds = response.value;
if(ds != null && typeof(ds) == "object" && ds.Tables != null){
var s = new Array();
s[s.length] = "<table border=1>";
for(var i=0; i<ds.Tables[0].Rows.length; i++){
s[s.length] = "<tr>";
s[s.length] = "<td>" + ds.Tables[0].Rows[i].FirstName + "</td>";
s[s.length] = "<td>" + ds.Tables[0].Rows[i].Birthday + "</td>";
s[s.length] = "</tr>";
}
s[s.length] = "</table>";
tableDisplay.innerHTML = s.join("");
}
else {
alert("Error. [3001] " + response.request.responseText);
}
}
</script>
Ajax还可以返回自定义类,唯一的要求是必须用Serializable属性标记。假设有如下的类:
[Serializable()]
public class User{
private int _userId;
private string _firstName;
private string _lastName;
public int userId{
get { return _userId; }
}
public string FirstName{
get { return _firstName; }
}
public string LastName{
get { return _lastName; }
}
public User(int _userId, string _firstName, string _lastName){
this._userId = _userId;
this._firstName = _firstName;
this._lastName = _lastName;
}
public User(){}
[AjaxMethod()]
public static User GetUser(int userId){
//Replace this with a DB hit or something :)
return new User(userId,"Michael", "Schwarz");
}
}
我们可以通过调用RegisterTypeForAjax注册GetUser代理:
private void Page_Load(object sender, EventArgs e){
Utility.RegisterTypeForAjax(typeof(User));
}
这样就可以在客户端异步调用GetUser:
<script language="javascript">
function getUser(userId){
User.GetUser(GetUser_callback);
}
function GetUser_callback(response){
if (response != null && response.value != null){
var user = response.value;
if (typeof(user) == "object"){
alert(user.FirstName + " " + user.LastName);
}
}
}
getUser(1);
</script>
响应中返回的值实际上是一个对象,公开了和服务器端对象相同的属性(FirstName、LastName和UserId)。
- 在ASP.NET中实现AJAX(3)(转载)
- 在ASP.NET中实现AJAX(2)(转载)
- 在ASP.NET中实现AJAX(1)(转载)
- 在ASP.NET中实现AJAX(3)
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX (转)
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX
- 在ASP.NET中实现AJAX(4)
- 在ASP.NET中实现AJAX(5)
- 在ASP.NET中实现AJAX
- osCommerce
- 在ASP.NET中实现AJAX(2)(转载)
- 精心设置卡巴斯基 加快杀毒速度
- 涨跌停板
- CSS overflow
- 在ASP.NET中实现AJAX(3)(转载)
- 插入与删除Excel表格的单元格、行和列
- Java 程序中的多线程
- 使用javascript动态改变当前行的显示样式
- 在ASP.NET中实现AJAX(4)(转)
- JavaScript的继承!
- 多种方式实现WPS表格单元格的合并
- 在ASP.NET中实现AJAX(5)(转)
- jsp怎么导出Excel表