如何在javascript中调用代码隐藏函数时传递参数?

问题描述:

假设我在后面的代码就像一个功能:如何在javascript中调用代码隐藏函数时传递参数?

Public Function Calc(ByVal ID As Integer) As Boolean 
    '...... 
End Function 

我可以调用javascript中这个功能就像

var isSuccess ='<%=Calc()%>'; 

但如何传递参数在这种情况下?下面的代码不工作:

var ID = 1; 
var isSuccess ='<%=Calc(ID)%>'; 

这里ID应该从HTML元素来得到,像 VAR ID =的document.getElementById( “txtID”)值;

该功能在页面呈现时被评估为(在服务器上),而var ID = 1被忽略/未被看到......它与您的服务器端代码无关。你可以得到最接近的将是:

var isSuccess ='<%=Calc(1)%>'; 

如果你想在JavaScript中的页面动态查询此,当用户与页面交互......嗯,这不是真的它是如何工作的,那么你需要一个AJAX回调和static page method来做到这一点。

+0

感谢。我对这种情况的情况是:该应用程序是.net 1.1应用程序,没有可用的AJAX。如何解决这个问题呢? – KentZhou 2010-05-05 16:32:35

+0

@KentZhou:AJAX仍然可以在.NET 1.1后端使用。这也不是那么复杂。但是,如果'Calc()'不使用任何服务器端资源(例如数据库),那么您可以将该函数翻译为JavaScript,并像使用其他函数一样使用它。 – 2010-05-05 16:38:58

+0

谢谢。 Calc()使用数据库作为服务器端资源。我会尝试AJAX。 – KentZhou 2010-05-05 16:47:10

代码var ID = 1;将在浏览器内部进行评估,但Calc()是服务器端函数。浏览器对Calc()一无所知,服务器对var ID一无所知。这就是为什么它不起作用的原因。您不能像这样在服务器端和客户端之间混合使用数据或逻辑。

由于Nick suggested,你可能要使用:var isSuccess = '<%=Calc(1)%>'

+0

谢谢,var ID是一个变量,我把它设为1只是为了演示,它应该是类似于var ID = document.getElementById(“txtID”); – KentZhou 2010-05-05 16:21:47

+0

@KentZhou:'Calc()'是否使用服务器端资源,比如数据库?如果没有,你可能可以在JavaScript中编写'Calc()'函数,然后简单地像调用其他函数一样调用它。如果它使用服务器端的东西,你唯一的选择就是使用AJAX。 – 2010-05-05 16:33:46