【问题标题】:Running Server Method after Client Javascript Method在客户端 Javascript 方法之后运行服务器方法
【发布时间】:2016-04-26 14:19:03
【问题描述】:

是否可以设置一个 asp 按钮,以便在单击它时运行客户端 javascript,然后运行服务器端 c# 方法,但只有在前面的 javascript 完成后才能运行?目标是当客户端提交表单时,第 3 方 jscript 执行其操作并发送表单数据。完成后,服务器端方法将运行,创建它需要的文件,然后将其发布回来,以便客户端可以下载它。我有这两个单独工作,但试图把它们放在一起一直是个问题。

做一些 google-fu 和 S.O.搜索让我想到,也许选择将OnClientClickOnServerClick 附加到同一个asp:button?或者有什么不同的方法?

【问题讨论】:

    标签: javascript c# asp.net onclientclick


    【解决方案1】:

    您只需提供OnClientClick 的javascript 方法。它将在回发发生之前执行。你甚至可以通过返回false来阻止它:

    function JsMethodName() {
        // do something...
        // return true; // postback
        // return false; // no postback
    }
    
    <asp:Button ID="ButtonID" 
        OnClientClick="return JsMethodName();" 
        OnClick="ServerMethod" runat="server" Text="ButtonText" />
    

    【讨论】:

    • 所以我运行了类似的东西,并用 3 秒的 setTimeout() 测试了 true。一定与不同的浏览器线程有关吗?在我在 setTimeout 内收到警报之前下载的文件。但是,错误的返回确实会阻止服务器创建任何所需的内容。
    猜你喜欢
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2014-03-30
    • 2011-08-30
    • 2013-04-08
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多