热门标签 | 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中怎么实现异步回调的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程笔记行业资讯频道,感谢各位的阅读!


推荐阅读
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
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社区 版权所有