从asp page .net调用C#方法

时间:2013-08-06 10:22:05

标签: asp.net

<asp:TextBox runat="server" ID="textbox2" MaxLength="2" onfocus="textbox2_focus" />

我有c#codebehind方法:

public void textbox2_focus(object sender, EventArgs e) { var x = 5; }

但是这段代码试图执行JavaScript函数。 如何从代码后面执行c#函数? 我试过像:

<asp:TextBox runat="server" ID="textbox2" MaxLength="2" onfocus="<%=textbox2_focus() %>"/>

但没有用。

3 个答案:

答案 0 :(得分:1)

添加以下命名空间

using System.Web.Services;

并定义如下方法

[WebMethod]
public void textbox2_focus(object sender, EventArgs e) 
{ 
var x = 5; 
}

并从ajax

调用它
function textbox2_focus() {
       $.ajax({
               type: "POST",
               url: "pagename.aspx/textbox2_focus",
               data: '',
               contentType: "application/json; charset=utf-8",
               dataType: "json",
               success: OnSuccess,
               failure: function (response) {
                // your code        
               }
             });
            }
    function OnSuccess(response) {

                  // your code
            }

答案 1 :(得分:1)

试试这个

在textfocus上调用javascript函数 call_textbox2_focus()在此函数中单击按钮

<asp:TextBox runat="server" ID="textbox2" MaxLength="2" onfocus="call_textbox2_focus()" />
<asp:Button ID="btnCallCodeBehind" Text="text" runat="server" style="display:none;" OnClick="textbox2_focus"/>
<script type="text/javascript">
    function call_textbox2_focus() {
        document.getElementById('<%= btnCallCodeBehind.ClientID %>').click();
    }
</script>

中的代码

    public void textbox2_focus(object sender, EventArgs e) { 

        var x = 5; 

    }

答案 2 :(得分:0)

onfocus事件是客户端事件,因此您将无法直接访问服务器端代码。

您可以通过JavaScript运行它并使用XmlHttpRequest或类似的东西来访问用C#编写的WebMethod。

看一下这个答案:Calling a webmethod with jquery in asp.net webforms