如何在asp.net中从javascript调用codebehind函数?

cha*_*aru 9 javascript c# asp.net

我想使用javascript从我的代码后面调用一个函数.我用了下面的代码:

function fnCheckSelection() {
some script;
window["My"]["Namespace"]["GetPart"](null);
}
Run Code Online (Sandbox Code Playgroud)

... "GetPart"函数名称在哪里.但是,这不起作用.请帮帮我.

小智 18

在JavaScript中:

    document.getElementById("btnSample").click();
Run Code Online (Sandbox Code Playgroud)

服务器端控制:

    <asp:Button runat="server" ID="btnSample" Text="" style="display:none;" OnClick="btnSample_Click" />
Run Code Online (Sandbox Code Playgroud)

C#

    protected void btnSample_Click(object sender, EventArgs e)
    {

    }
Run Code Online (Sandbox Code Playgroud)

这很简单,但......

  • 是的 但是,如果我使用“更新面板”,则可以更新特定部分,对吗?我应该更新的网格位于更新面板中。但是仍然无法正常工作。你对此有什么想法吗 (2认同)
  • 对于javascript代码,我认为你需要使用document.getElementById('<%= btnSample.ClientID%>').click(); (2认同)

Med*_*uil 7

你可以通过ajax调用来做到这一点

这是一个jquery示例:

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

这里是api文档和后面的代码

[WebMethod]
public static yourType Method (Params){}
Run Code Online (Sandbox Code Playgroud)

或者您可以在updatePanel中添加隐藏按钮,并使用js调用click事件.('#<%=ID.ClientID%>').click(); 它将调用OnClientClick,如果它存在,那么你的codeBehind fucntion.


Aru*_*K V 5

尝试这个

您的代码隐藏功能

[WebMethod]
public  static void GetPart() {

               //your code goes here
}  
Run Code Online (Sandbox Code Playgroud)

. 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)
                    {

                    }
                });
});

});
Run Code Online (Sandbox Code Playgroud)