热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET中怎么实现异步回调

ASP.NET中怎么实现异步回调,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ASP.

ASP.NET中怎么实现异步回调,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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

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

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

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

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

function CallbackError(result)  {  alert(result);  }

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

public partial class _Default : Page,   ICallbackEventHandler  {  public void RaiseCallbackEvent(string result)  {  }  public string GetCallbackResult()  {  string username = usernameValue;  return username;  }  protected void Page_Load(object sender,   EventArgs e)  {  string callback =   Page.ClientScript.GetCallbackEventReference(  this, null, "ajaxread", null, "CallbackError", true);  Page.ClientScript.RegisterStartupScript(  this.GetType(), "_Default", callback, true);  }  }

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

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

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

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

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

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

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

﹤span﹥按文章分类名称:﹤/span﹥  ﹤asp:DropDownList ID="ArticleTypeDD" runat="server"﹥  ﹤/asp:DropDownList﹥  ﹤asp:Button ID="SearchLB"  OnClick="SearchLB_Click" Text="查看"   runat="server" /﹥  ﹤asp:GridView ID="grdArticles"   AllowPaging="true" PageSize="15"   EnableSortingAndPagingCallbacks="true"  OnPageIndexChanging="grdArticles_PageIndexChanging"   runat="server" /﹥  ﹤asp:GridView ID="grdArticlesInType" AllowPaging="true"  PageSize="15" EnableSortingAndPagingCallbacks="true"   OnPageIndexChanging="grdArticlesInType_PageIndexChanging"   runat="server" /﹥

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

protected void Page_Load(object sender, EventArgs e)  {  grdArticles.DataSource = BindData();  grdArticles.DataBind();  grdArticlesInType.DataSource = BindData1();  grdArticlesInType.DataBind();  }  protected void Page_PreRender(object sender,   EventArgs e)  {  if (!IsPostBack)  {  ArticleTypeDD.DataSource = ArticleAccess.GetArticleTypeName();  ArticleTypeDD.DataTextField = "ArticleTypeName";  ArticleTypeDD.DataValueField = "ArticleTypeId";  ArticleTypeDD.DataBind();  }  }  protected void grdArticles_PageIndexChanging(  object sender, GridViewPageEventArgs e)  {  grdArticles.PageIndex = e.NewPageIndex;  grdArticles.DataSource = BindData();  grdArticles.DataBind();  }  protected void grdArticlesInType_PageIndexChanging(  object sender, GridViewPageEventArgs e)  {  grdArticlesInType.PageIndex = e.NewPageIndex;  grdArticlesInType.DataSource = BindData1();  grdArticlesInType.DataBind();  }  protected void SearchLB_Click(object sender,   EventArgs e)  {  grdArticles.Visible = false;  grdArticlesInType.Visible = true;  grdArticlesInType.DataSource = BindData1();  grdArticlesInType.DataBind();  }

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

看完上述内容,你们掌握ASP.NET中怎么实现异步回调的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程笔记行业资讯频道,感谢各位的阅读!


推荐阅读
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本文将介绍如何在混合开发(Hybrid)应用中实现Native与HTML5的交互,包括基本概念、学习目标以及具体的实现步骤。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • Vue 实现表格分页功能详解
    本文将详细介绍如何在 Vue 中实现表格的分页功能,包括代码示例和具体实现步骤,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • Hyperledger Fabric 1.4 节点 SDK 快速入门指南
    本文将详细介绍如何利用 Hyperledger Fabric 1.4 的 Node.js SDK 开发应用程序。通过最新版本的 Fabric Node.js SDK,开发者可以更高效地构建和部署基于区块链的应用,实现数据的安全共享和交易处理。文章将涵盖环境配置、SDK 安装、示例代码以及常见问题的解决方法,帮助读者快速上手并掌握核心功能。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
author-avatar
Jolina
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有