温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-07-16 11:31:20 来源:亿速云 阅读:117 作者:Leah 栏目:编程语言

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI