2011-07-18 175 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'); 
    } 
} 

希望幫助:)