2015-03-03 34 views
6

我想從使用javascript的代碼中調用一個函數。我用下面的代碼:如何在asp.net中調用JavaScript的代碼隱藏功能?

function fnCheckSelection() { 
some script; 
window["My"]["Namespace"]["GetPart"](null); 
} 

...其中"GetPart"是函數名稱。但是,這不起作用。請幫助我。

$.ajax({ 
      type: "POST", 
    url:"~/code_behind.aspx/Method", 
      data: dataPost, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
    .... 
    }); 

這裏是api文檔 並在後面的代碼

[WebMethod] 
public static yourType Method (Params){} 

,或者你可以添加:

+0

的[這裏](http://stackoverflow.com/questions/5731224/calling-javascript-function-from-codebehind) – Aria 2015-03-03 08:33:25

+0

@ Aria.I需要的是你的viceverse可能的複製說過。我需要調用javascript中的代碼隱藏方法。 – charu 2015-03-03 08:40:59

+0

@charu你試過我的回答嗎? – 2015-03-03 10:03:08

回答

12
在JavaScript

document.getElementById("btnSample").click(); 

服務器端控件:

<asp:Button runat="server" ID="btnSample" Text="" style="display:none;" OnClick="btnSample_Click" /> 

C#

protected void btnSample_Click(object sender, EventArgs e) 
    { 

    } 

它雖然簡單的方法...

+0

但它重新加載頁面的權利。 – charu 2015-03-03 09:24:34

+0

它會重新加載。當您單擊服務器控件時,ASP.NET始終加載該頁面,然後調用由JavaScript調用觸發的事件。就像我們點擊沒有鼠標的按鈕。 – Nachiket 2015-03-03 10:43:51

+0

是的。但是,如果我使用更新面板,我可以更新特定的部分嗎?我應該更新的網格位於更新面板中。但它仍然不起作用。你對此有任何想法。 – charu 2015-03-06 09:41:33

4

您可以通過Ajax調用

這是一個jQuery例子做到這一點隱藏在updatePanel中的按鈕,並使用js調用click事件。 ('#<%=ID.ClientID%>').click(); 它會調用OnClientClick,如果它存在,那麼你的代碼隱藏功能。

+0

'〜/ code_behind.aspx/Method'應該用'.ResolveClientUrl'解決。 – 2015-03-03 08:51:19

+0

@AndreasNiedermair我沒有明白你的意思。 – 2015-03-03 08:53:27

+0

'〜'在純HTML中不是有效的限定詞,它只對ASP.net有效,需要根據應用程序的虛擬路徑來解析,這可以通過例如['.ResolveClientUrl(「〜/ foo.aspx」)來實現) ](https://msdn.microsoft.com/en-us/library/system.web.ui.control.resolveclienturl.aspx)https://msdn.microsoft.com/en-us/library/system.web。 ui.control.resolveclienturl.aspx – 2015-03-03 08:56:57

-1

使用AJAX,你可以調用一個代碼隱藏功能JavaScript的使用JQuery:

function : fnCheckSelection(){ 
    $.ajax({ 
     cache: false, 
     url: "/GetPart" 
     type: "POST", 
     success: function (result) { 

     }, 
     error: function (msg) { 

     } 
    }); 
} 
1

試試這個

你身後功能

[WebMethod] 
public static void GetPart() { 

       //your code goes here 
} 

代碼。 的Javascript

$(document).ready(function() { 

$("#btnname").click(function() { 

$.ajax({ 
        type: "POST", 
        url: "/youraspxpagename.aspx/GetPart", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function (msg) 
        { 

        } 
       }); 
}); 

}); 
+0

試試這個,讓我知道你是否仍然有問題 – 2015-03-09 06:18:21

+0

修復函數中的代碼斷點,並檢查它是否打中 – 2015-03-09 06:19:52