【问题标题】:ASP.Net - Fire a button's event on the server-side without causing a postbackASP.Net - 在服务器端触发按钮事件而不导致回发
【发布时间】:2011-12-11 13:40:57
【问题描述】:

我有一个问题,过去我也看到其他人也有过,但我找不到任何解决方案。

我想在一个页面上使用一个 ASP.Net 链接按钮(甚至是一个按钮),一旦点击,它在服务器端的事件代码就会触发,但我不希望它导致回发。

现在我知道这些控件旨在通过设计导致回发,您可以通过添加以下内容来禁用它:“return false;”到 Onclientclick 参数(或者 Attributes.Add("onclick", return false"); )但请注意,这不是我要问的。我认为我的问题本质上是:我们如何在服务器上调用方法-从客户端而不引起回发?这甚至可能吗?(我可以感觉到问题本身存在一些逻辑问题,但其他几个人也遇到了同样的问题)。

对于那些有创造力的人来说,我最近遇到了: http://ryanfarley.com/blog/archive/2005/03/11/1886.aspx

它解释了如何识别导致回发的控件。也许这有助于以某种方式禁用回发效果但触发事件?如果是这样,如何避免页面刷新效果(我在Page_Load中没有任何内容,但页面仍然“刷新”或重新渲染。我不想要这个,可以避免吗?我没有想出办法了。

感谢您的宝贵时间。

【问题讨论】:

    标签: asp.net events button postback linkbutton


    【解决方案1】:

    要调用服务器端事件,您必须将数据发送到服务器,以便它知道要做什么。停止回发会停止发送数据,因此服务器永远不会知道客户端发生了什么。

    如果您只是想避免页面引用,那么可以使用 AJAX。在 ASP.NET 网络表单中,最简单的方法是将内容包装在 UpdatePanel 中。另一种方法是考虑将PageMethods 与客户端脚本一起使用(本质上是从客户端脚本调用 Web 服务,然后充当服务器的代理)。

    【讨论】:

      【解决方案2】:

      为什么不编写一个由按钮触发的 javascript 来进行您需要的客户端修改。如果您在活动期间需要来自服务器的任何动态数据,您可以使用 ajax 从服务器获取。

      【讨论】:

        【解决方案3】:

        据我所知,这是不可能的。

        【讨论】:

          【解决方案4】:

          您可以通过将按钮放在 UpdatePanel 中来触发部分播放(因此页面不会重新加载)。

          【讨论】:

            【解决方案5】:

            你可以在这里做两件事。 - 使用更新面板并在 PageLoad 中为 IsPostBack 添加一个检查。 - 您可以做的另一件事是使用 jquery 进行 ajax 调用并指定将在该按钮单击时执行的方法,下面的链接应该可以帮助您。 http://www.seoasp.net/post/2008/07/16/jQuery-To-Call-ASPNET-Page-Methods-and-Web-Services.aspx

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-06-06
              • 1970-01-01
              • 1970-01-01
              • 2013-09-27
              相关资源
              最近更新 更多