从jquery Side调用函数后面的代码

时间:2011-12-07 09:56:53

标签: jquery asp.net

如何从客户端调用代码隐藏功能?

// Code-behind function:
public void CodeBehindFunction(int i)
{
   ...
}

我想从客户端调用它...

// Client-side call:
$(this). ?? 

2 个答案:

答案 0 :(得分:0)

正确地说,您的意思是希望从客户端代码调用服务器端例程...

我建议您使用JavaScript强制回发:__doPostback('CodeBehindFunction',iParameter); - 然后在服务器端代码的Page Init事件中,通过类似的东西捕获此自定义回发。

if (Request.Params["__EVENTTARGET"] == "CodeBehindFunction")
{
    int i;
    // Try to convert the argument (in the example this is the value of iParameter)
    if (int.TryParse(Request.Params("__EVENTARGUMENT"),out i)
    {
        CodeBehindFunction(i);
    }
}

或者使用通过jQuery.ajax调用的WebService。

答案 1 :(得分:0)

您可以使用ajax来调用CodeBehindFunction(int i) 但你必须将方法标记为webmethod和static:

[WebMethod]
public static void CodeBehindFunction(int i)
{
   ...
}

然后从js

调用它
$.ajax({
                type: "POST",
                url: "/yourPage.aspx/CodeBehindFunction",
                data: "{'i':'"+num+"'}", //PUT DATA HERE
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) { 

                 }
            })

** yourPage.aspx是声明CodeBehindFunction方法的页面