<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() %>"/>
但没有用。
答案 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。