文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-17 23:50

关注

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯