首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在asp.net用户控件中启用异步回调

在asp.net用户控件中启用异步回调
EN

Stack Overflow用户
提问于 2012-03-30 21:35:22
回答 3查看 5.4K关注 0票数 0

启用异步的理想方式是什么?asp.net用户控件中类似Ajax的回调。当前设计的asp.net页面使用多个用户控件,具有间歇性回发和页面重新加载功能。

我正在尝试在不使用JavaScript的情况下加入无页面重载的体验。这个是可能的吗?

如果没有,我应该如何在这个场景中加入无页面重新加载的统一体验呢?

EN

回答 3

Stack Overflow用户

发布于 2012-03-30 21:49:16

没有办法完全避免JavaScript。您可以使用像UpdatePanel这样的东西,这样您就不必自己编写代码,但是JavaScript仍然在幕后使用。

一般来说,如果没有JavaScript,ASP.NET就不能真正发挥作用,因为除了按钮之外,每个其他控件都使用__doPostBack JavaScript函数进行回发。

回发可以做到这一点

编辑

将服务器控件扩展到wrap的最好方法可能是将其包装在UpdatePanel

代码语言:javascript
复制
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <!-- your server control here -->
    </ContentTemplate>
</asp:UpdatePanel>
票数 3
EN

Stack Overflow用户

发布于 2012-03-30 22:08:25

事实上,您的问题有两种可能的解决方案:

更新面板

到目前为止,许多人已经提到,您可以将现有控件包装在一个UpdatePanel (link)中,但这仍然会导致面板的内容回发到服务器,但这是目前为止实现最简单、最快的方法,并且具有最大的、显著的可用性改进。

异步回调

使用.NET (link)中的异步回调,你可以用更多的控制向你的javascript文件发送数据;

您可以通过调用在开始页上注册的特定javascript函数来执行服务器端方法:

代码语言:javascript
复制
void Page_Load(object sender, EventArgs e)
{
    ClientScriptManager cm = Page.ClientScript;
    String cbReference = cm.GetCallbackEventReference(this, "arg","ReceiveServerData", "");
    String callbackScript = "function CallServer(arg, context) {" + cbReference + "; }";
    cm.RegisterClientScriptBlock(this.GetType(),"CallServer", callbackScript, true);
}

这是通过实现ICallbackEventHandler接口来实现的,为您提供了两种方法,即:

RaiseCallbackEvent:当您从javascript客户端发送数据时调用的事件,其中包含一个参数变量。(通过使用JSON,这个单一变量的障碍很容易克服。)

GetCallbackResult:完成服务器端方法后,您可以将结果以字符串的形式发送回页面,其中包含您可能需要的任何内容。

这非常适合于长时间运行的进程,在完全回发之前返回确认或检查简单条件,并将带来巨大的可用性改进。

将这两种方法结合起来是可能的,并在回发服务器控件(网格、下拉列表等)和检查某些条件(服务器端)之间找到中位数,而不回发仅发现某些条件未满足的情况。

票数 3
EN

Stack Overflow用户

发布于 2012-03-30 21:50:52

如果您正在寻找一种快速的方法来整合“无需重新加载”的体验,而无需编写任何自定义的JavaScript,那么您可以查看ASP UpdatePanel http://ajax.net-tutorials.com/controls/updatepanel-control/

它很容易设置,并为您处理“一切”。:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9944047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档