ASP.NET异步回调开发实例浅析

开发 后端
ASP.NET异步回调开发实例向你介绍了一个在实际工作中使用ASP.NET异步回调开发的一点心得的总结,希望对你了解和学习ASP.NET异步回调有所帮助。

ASP.NET异步回调开发实例浅析

ASP.NET异步回调的重要性:在实际开发中,ASP.NET 客户端异步回调技术才是王道。下面我们进行 ASP.NET 开发重构以实现异步回调。

之前的HTML代码示例中,onclick事件写在了HTML中,现在从中移出至外部的JS。

  1. ﹤label﹥用户名﹤/label﹥  
  2. ﹤span﹥username value﹤/span﹥  
  3. ﹤a href="#" id="divElem"﹥查看﹤/a﹥  
  4. 在JavaScript代码中给ajaxread方法加入了onclick事件处理:   
  5. var divElem = document.getElementById('divElem');  
  6. var span = document.getElementsByTagName('span');  
  7. divElem.onclick = function()   
  8. {  
  9. span[0].innerHTML = result;  
  10. return false;  

其中 result 是这个方法的传值参数。

另外,还定义了一个处理回调时出错的方法:

  1. function CallbackError(result)  
  2. {  
  3. alert(result);  

下面是ASP.NET异步回调之服务端程序的示例部分:

  1. public partial class _Default : Page,   
  2. ICallbackEventHandler  
  3. {  
  4. public void RaiseCallbackEvent(string result)  
  5. {  
  6. }  
  7. public string GetCallbackResult()  
  8. {  
  9. string username = usernameValue;  
  10. return username;  
  11. }  
  12. protected void Page_Load(object sender,  
  13.  EventArgs e)  
  14. {  
  15. string callback =   
  16. Page.ClientScript.GetCallbackEventReference(  
  17. thisnull"ajaxread"null"CallbackError"true);  
  18. Page.ClientScript.RegisterStartupScript(  
  19. this.GetType(), "_Default", callback, true);  
  20. }  

其中 usernameValue 是数据处理的变量,具体实现代码略。

程序编译后,运行结果与之前用异步回传是一致的,但代码重构改为异步回调后,无论是程序可读性,还是代码精简度,都提升了不少。

我通过Firebug观察到客户端代码中的数据交互处理是文本(Text)而不是XML,这是 ASP.NET 默认的异步回调数据处理的方式吧。

在ASP.NET 服务端控件中就带有Ajax特性的功能了,如 GridView 内带了利用异步回调技术的分页功能,这样可以少写了一些代码量。

在 GridView 的属性中设置:AllowPaging="true" EnableSortingAndPagingCallbacks="true"。数据绑定在 Page_Load事件和GridView控件的OnPageIndexChanging事件中调用。这样的分页是Ajax的异步回调的了。

下面是个实际运用中简单的实例:根据下拉列表所选中项点击“查看”按钮后,显示相应的数据。默认显示所有的数据。

ASP.NET异步回调在程序中设计了两个Gridview,一个显示默认的所有数据、另一个显示查询后的数据:

  1. ﹤span﹥按文章分类名称:﹤/span﹥  
  2. ﹤asp:DropDownList ID="ArticleTypeDD" runat="server"﹥  
  3. ﹤/asp:DropDownList﹥  
  4. ﹤asp:Button ID="SearchLB" 
  5.  OnClick="SearchLB_Click" Text="查看"   
  6. runat="server" /﹥  
  7. ﹤asp:GridView ID="grdArticles"   
  8. AllowPaging="true" PageSize="15"   
  9. EnableSortingAndPagingCallbacks="true" 
  10.  OnPageIndexChanging="grdArticles_PageIndexChanging"   
  11. runat="server" /﹥  
  12. ﹤asp:GridView ID="grdArticlesInType" AllowPaging="true" 
  13.  PageSize="15" EnableSortingAndPagingCallbacks="true"   
  14. OnPageIndexChanging="grdArticlesInType_PageIndexChanging"   
  15. runat="server" /﹥ 

ASP.NET异步回调之cs代码部分:

  1. protected void Page_Load(object sender, EventArgs e)  
  2. {  
  3. grdArticles.DataSource = BindData();  
  4. grdArticles.DataBind();  
  5. grdArticlesInType.DataSource = BindData1();  
  6. grdArticlesInType.DataBind();  
  7. }  
  8. protected void Page_PreRender(object sender,  
  9.  EventArgs e)  
  10. {  
  11. if (!IsPostBack)  
  12. {  
  13. ArticleTypeDD.DataSource = ArticleAccess.GetArticleTypeName();  
  14. ArticleTypeDD.DataTextField = "ArticleTypeName";  
  15. ArticleTypeDD.DataValueField = "ArticleTypeId";  
  16. ArticleTypeDD.DataBind();  
  17. }  
  18. }  
  19. protected void grdArticles_PageIndexChanging(  
  20. object sender, GridViewPageEventArgs e)  
  21. {  
  22. grdArticles.PageIndex = e.NewPageIndex;  
  23. grdArticles.DataSource = BindData();  
  24. grdArticles.DataBind();  
  25. }  
  26. protected void grdArticlesInType_PageIndexChanging(  
  27. object sender, GridViewPageEventArgs e)  
  28. {  
  29. grdArticlesInType.PageIndex = e.NewPageIndex;  
  30. grdArticlesInType.DataSource = BindData1();  
  31. grdArticlesInType.DataBind();  
  32. }  
  33. protected void SearchLB_Click(object sender,  
  34.  EventArgs e)  
  35. {  
  36. grdArticles.Visible = false;  
  37. grdArticlesInType.Visible = true;  
  38. grdArticlesInType.DataSource = BindData1();  
  39. grdArticlesInType.DataBind();  

在这里,BindData()方法、BindData1()方法分别返回两个GridView控件的数据绑定的DataTable对象实例。方法具体代码略过。分页运行结果是默认的分页界面。

ASP.NET异步回调的基本内容就向你介绍到这里希望对你了解和学习ASP.NET异步回调有所帮助。

【编辑推荐】

  1. C#异步调用四大方法详解
  2. C#网络编程消息发送问题浅析
  3. C#异步传输字符串服务端的实现
  4. C#异步传输字符串客户端的实现
  5. ASP.NET异步回调浅析
责任编辑:仲衡 来源: 博客园
相关推荐

2009-08-21 17:02:20

ASP.NET异步回调

2009-07-28 16:40:11

ASP.NET异步页面

2009-07-29 15:55:48

ASP.NET Req

2009-08-07 15:24:16

ASP.NET模板控件

2009-08-10 18:24:29

ASP.NET开发环境

2009-07-29 09:12:31

ASP.NET数据库连

2009-08-05 15:50:13

ASP.NET优点

2009-07-31 12:43:59

ASP.NET MVC

2009-08-07 15:34:15

ASP.NET数据绑定

2009-07-24 13:41:15

ASP.NET AJA

2009-08-05 18:36:12

ASP.NET Che

2009-08-10 13:32:15

ASP.NET TimASP.NET组件设计

2009-08-04 17:00:09

ASP.NET禁用Vi

2009-08-05 14:46:17

ASP.NET url

2009-07-20 16:23:01

ASP.NET授权模块

2009-07-28 13:35:18

2009-07-23 14:31:20

ASP.NET MVC

2009-07-27 10:18:12

TypeResolveASP.NET

2009-07-28 15:53:43

ASP.NET Web

2009-07-28 09:32:41

ASP.NET自定义控
点赞
收藏

51CTO技术栈公众号