2011-07-18 60 views
0

我正在使用来自jquery-ui网站的代码示例来显示对话框窗体。 如何将功能添加到“确定”按钮。我想要这个按钮来调用一个javascript函数“PageValidation”,如果它返回true,那么调用一个C#函数将数据保存在数据库中,然后关闭模态窗体。如果“PageValidation返回false然后什么也不做,不关闭模式窗体jQuery-UI对话框

这是代码:。

  $('#dialog').dialog({ 
       autoOpen: false, 
       width: 600, 
       buttons: { 
        "Ok": function() { 
         $(this).dialog("close"); 
        }, 
        "Cancel": function() { 
         $(this).dialog("close"); 
        } 
       } 
      }); 

感谢

+0

它是一个“正常”的asp.net页面或mvc页面? – Fender

+0

正常的asp.net页面。 –

+0

好吧,那么它应该像我在下面的答案一样工作 – Fender

回答

1

您可以在“OK”功能,添加功能是这样的:

   "Ok": function() { 
        MyFunc(); 
        $(this).dialog("close"); 
       }, 

然后,写MYFUNC的身体() ,像这样:

function MyFunc(){ 
    if (PageValidation()) 
      AjaxCSharpCall(); 
} 

终于写出AjaxCSharpCall()的身体发出一个Ajax请求一个页面,在其中你可以做你的C#功能。是这样的:

function AjaxCSharpCall() { 
    $.ajax({ 
     type: "POST", 
     url: "MyPage.aspx", 
     data: "doFunction=True", 
     success: function(){ 
     alert("C# Function was executed!"); 
     } 
    }); 
} 
+0

你能解释一下AjaxCSharpCall()是做什么的? TY。 –

+0

你必须在页面中做一个Ajax请求。它就像一个真正的HTTP请求,但不刷新页面。您发送请求并在服务器上,在该特定页面上,执行您的c#功能。你知道阿贾克斯吗? – Saeed

+0

我只知道一点点阿贾克斯。 –

1

只是做与功能的按钮(超链接)和现在你可以删除你的按钮,并使用它与你的对话框

你的JavaScript应该看起来像这样:

__doPostBack('ctl00$ctl00$OverallMainContent$MainContent$Your_Control','yourFuncOnServer') 

只是尝试添加一个按钮,超链接,并将其复制

+0

我感谢你的帮助。谢谢。 –

0

撰写您OK是这样的:

"OK": function() { 
    saveData(); 
} 

然后写saveData()是这样的:

function saveData() { 
    if (pageValidation()) { 
    /* C# function here. */ 
    $("#dialog").dialog('close'); 
    } 
} 

希望帮助:)