2010-04-22 29 views
0

我已经发布了类似的问题,并可以自己回答,但解决方案并没有完全满足我。如何获得jQuery的PageMethods功能的结果

使用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。

回答

0

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

+0

谢谢,但我的页面方法也在运行。我知道这个问题很愚蠢,但我不知道如何处理页面方法给出的结果。基本上,我想用结果来使方法validateEntry()返回false。 如果答案在于你发布的例子,请原谅和解释,我不明白... – AGuyCalledGerald 2010-04-22 15:51:38

0

我想出了一个解决方案,但会感谢更容易的解决方案。

我用一个隐藏字段在页面上,并在子功能,我写的结果 从页面的方法进入该领域:

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

之后,我可以阅读从外地来的结果在主要功能中使用它。

0

鉴于PageMethods.CheckEntry运行无延迟传递的功能,你可以这样做:

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

如果你试试这个,“富”没有显示,则该功能被延迟,你需要重新考虑如何做到这一点或提供更多的信息,以便我们可以帮助你。