【问题标题】:How to get the result of jQuery PageMethods function如何获取 jQuery PageMethods 函数的结果
【发布时间】:2010-04-22 08:34:18
【问题描述】:

我已经发布了一个与此问题类似的问题,并且可以自己回答,但解决方案并不完全让我满意。

使用 Asp.Net/C#,我有一个按钮,如果它执行一些服务器端代码 通过客户端验证。我想这样做是因为对于我的应用程序,我认为它最适合。

<asp:Button runat="server" ID="addBtn" Text="Add" OnClientClick="if(validateEntry()== false){return false;}" OnClick="addBtn_Click"/>

我调用了一个名为 validateEntry() 的 jQuery 函数,它使用 PageMethods 来获取一些 来自服务器的数据。这些数据是验证过程所必需的。

function validateEntry() {

PageMethods.CheckEntry(params, function(result){//Evaluate result of PageMethods}
}

我的问题是我不知道如何正确处理从 PageMethods 收到的数据。 我只能将它们交给可以使用它们的子功能。但我需要 变量中的数据以执行返回 false。

【问题讨论】:

    标签: jquery pagemethods


    【解决方案1】:

    我已经发布了一个运行示例,如何使用来自 jquery here 的页面方法。

    【讨论】:

    • 谢谢,但我的页面方法也在运行。我知道这个问题很愚蠢,但我不知道如何处理 page 方法给出的结果。基本上,我想使用结果使方法 validateEntry() 返回 false。如果答案就在您发布的示例中,请原谅并解释,我不明白...
    【解决方案2】:

    我想出了一个解决方案,但如果有更简单的解决方案,我将不胜感激。

    我在页面和子功能中使用了一个隐藏字段,我写了结果 从页面方法到字段:

    $("#pageMethodsResultField").val(result);
    

    之后,我可以从字段中读取结果以在主函数中使用它。

    【讨论】:

      【解决方案3】:

      鉴于 PageMethods.CheckEntry 会立即运行传递的函数,您可以这样做:

      function validateEntry() {
        var foo;
        PageMethods.CheckEntry(params, function(result){
          foo = "bar";
        });
        alert(foo);
      }
      

      如果您尝试此操作但未显示“foo”,则该功能已延迟,您需要重新考虑如何执行此操作或提供更多信息以便我们为您提供帮助。

      【讨论】:

        猜你喜欢
        • 2016-02-27
        • 1970-01-01
        • 2020-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多