2013-01-31 72 views
0

我想弄清楚如何从javascript确认框中调用C#函数。即如果用户选择“确定”,则调用一个函数,并且如果用户选择“取消”,则调用另一个函数。 所有代码位于背页,如下所示:我如何从JavaScript调用C#函数?

Response.Write(@" 
    <script language='javascript'> 
    var msg=confirm('Your new document has been created.\nPress OK to go there now, or Cancle to create another document.'); 
    if (msg==true) {<%=redirect()%>;} 
    else {<%=clearForm()%>;} 
    </script> 
"); 

protected void redirect(object sender, EventArgs e) 
{ 
    Response.Redirect("myPage.aspx"); 
} 

protected void clearForm(object sender, EventArgs e) 
{ 
    //More code here// 
} 

。注意的Response.Redirect内的所有代码都在同一行,我只是把它分解了这里简单!无论如何,这是行不通的,我找不到解决方案。我已经试过if声明

我的第一个想法是不给用户提供一个选项,并简单地使用中的各种不同的事情:

Response.Write(@"<script language='javascript'>alert('Your new document has been created.');</script>"); 
Response.Redirect("TaskPanel.aspx"); 

但是,当我尝试这样做,页面没有等待用户在重定向之前单击确定,因此使其无意义。

+1

发送一个JSON请求到服务器来调用该函数。你的代码有几个错误。 首先,您将JavaScript写成一个字符串,这对您来说将变得越来越难以维护。 其次,重定向和清除表单都可以在客户端通过javascript执行。 –

+1

使用ajax和web服务 –

+1

对于重定向和表单清除,您不需要调用后面的代码,只需使用简单的javascript即可完成。 – Aristos

回答

3

您对服务器端代码和客户端代码感到困惑。您提出的将你的服务器上运行,并写出来的JavaScript代码的页面上的C#代码:你写出来

<script language='javascript'> 
    var msg=confirm('Your new document has been created.\nPress OK to go there now, or Cancle to create another document.'); 
    if (msg==true) {<%=redirect()%>;} 
    else {<%=clearForm()%>;} 
</script> 

中的JavaScript将在客户端browswer运行。

不过,我想你会得到一个JavaScript错误,因为它会尝试写出来<%=redirect()%>;<%=clearForm()%>;这应该已经在服务器端运行(但实际上是出现在一个字符串ASPX scriptlet代码客户端上的JavaScript)。

这只是一个解释/答案,为什么你不能直接从JavaScript调用C#函数。

针对您的特定问题,您无需回电给服务器做重定向或清除表单。

这两个都可以在JavaScript中完成。

重定向可以用JavaScript window.location="myPage.aspx"self.location="myPage.aspx"

进行清晰的形式可以用JavaScript form.reset()

1

是其简单的只是:把你的回调函数在文件

之后,你应该绑定点击确定你调用的函数有:AJAX 用任何javascript框架做简单

OK 取消

$("#OK,#Cancel").click(function(){ 

var whichFct = $(this).attr('fct');  var urlToFile = "web/app/link/fct/1"; 
if(whichFct == 2) urlToFile = "web/app/link/fct/2" 

    $.post(urlToFile,function() { 
      //do sthlike hiding the form ... 
     }); 
}); 

它只是比这个

0

简单的传递buttonclick JavaScript函数..然后写下面的代码在.aspx页面中:

<script language='javascript'> 
function func_name() 
{ 
var msg=confirm('Your new document has been created.\nPress OK to go there now, or Cancle to create another document.') 
if (msg==true) {<%=redirect()%>} 
else {<%=clearForm()%>} 
} 
</script> 

为做人之道其他按钮也是如此。