首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AjaxPro传递变量

使用AjaxPro传递变量
EN

Stack Overflow用户
提问于 2009-01-07 14:29:14
回答 4查看 3.2K关注 0票数 0

前几天我发现了this AJAX .NET framework,到目前为止我很喜欢使用它。但是,有一件事我搞不懂(文档相当糟糕),那就是如何通过AJAX脚本传递变量。这就是我到目前为止所知道的:

代码语言:javascript
复制
//default2.aspx.vb
  <AjaxPro.AjaxMethod()> _
  Public Shared Function testSomething(ByVal value As String) As String
     Return value
  End Function
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     AjaxPro.Utility.RegisterTypeForAjax(GetType(Default2))
  End Sub

//default2.aspx
  <a href="#" onclick="doTest(1);">test something</a>
  <div id="temp" style="margin:15px 15px 0px 5px; padding:10px;"></div>
  <script type="text/javascript">
     function doTest(x){
         Default2.testSomething(doTest_callback,x)
     }
     function doTest_callback(res,x){
         alert(res.value);
         document.getElementById("temp").innerHTML = ">>>> " + x + " <<<<"
     }
  </script>

我还有其他几个测试函数可以很好地工作,它们可以执行相对复杂的操作。有谁对如何用AjaxPro传递变量有什么见解吗?另外,也欢迎使用其他方法!

EN

回答 4

Stack Overflow用户

发布于 2010-01-20 08:11:50

使用AjaxPro时,首先传递参数,然后将回调函数作为最后一个参数。如果你在这里使用匿名函数,你可以访问响应和原始值。它看起来像这样:

代码语言:javascript
复制
function doTest(x){
    Default2.testSomething(x, function(res){
        doTest_callback(res.value, x);
    });
}
function doTest_callback(resonseValue,originalValue){
    alert("response: " + responseValue);
    alert("original: " + originalValue);
}
票数 1
EN

Stack Overflow用户

发布于 2012-12-22 04:29:02

我知道这是一个老版本,但我一直在使用AjaxPro,并且仍然在.NET 4上使用它--它仍然可以做到这一点。

如果您希望通过回调传递额外的变量并将其返回到结果中,请在回调后传递该值并使用res.context检索它。

如下所示:

代码语言:javascript
复制
function CallSomething()
{
   DoServerSide.MethodName(arg1, arg2, CallbackFunction, ExtraVar);
}

function CallbackFunction(res)
{
  var result = res.value;
  var extra = res.context;
}
票数 1
EN

Stack Overflow用户

发布于 2009-01-07 15:42:19

自从我使用这个框架(版本6.9.22.2,所以事情可能有一点变化)以来已经有一段时间了--你看过ASP.NET AJAX framework了吗?我不确定自那以后Michael在这方面做了多少工作--可以肯定的是,他关于它的博客帖子在2007年7月左右枯竭了。

不管怎样,如果我没理解错你的问题,你想:

  1. 将一个值传递给您的服务器端方法
  2. 在您的回调方法

中使用该值

首先,为了将变量传递给你的方法,它们不应该出现在回调函数的名称之前吗?

要在回调中检索初始值,我可以:

  1. 将它们作为JSON返回对象的一部分返回
  2. 将它们存储在两个函数

作用域之外的变量中

使用选项2,您将拥有:

代码语言:javascript
复制
<a href="#" onclick="doTest(1);">test something</a>
<div id="temp" style="margin:15px 15px 0px 5px; padding:10px;"></div>
<script type="text/javascript">
   var initialValue;

   function doTest(x){
     initialValue= x;
     Default2.testSomething(x, doTest_callback)
   }

   function doTest_callback(res){
     alert(res.value);
     document.getElementById("temp").innerHTML = ">>>> " + initialValue + " <<<<"
   }
</script>

这样做的主要缺点是,如果用户使用不同的值触发"doTest“方法,而您仍在处理第一个请求,那么在doTest_callback中查询initialValue时,它的值很可能已经更改。

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

https://stackoverflow.com/questions/420483

复制
相关文章

相似问题

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