我的网页上有一个文本框,我想尽快点击或在此文本框中输入内容。代码正在运行但是当用户点击Enter按钮时它正在触发。我想在用户输入第一个字符时触发它。哪个事件适用于此?
这是我的模型代码:
<asp:TextBox ID="txtAgentName" runat="server" OnTextChanged = "txtAgentName_TextChanged"></asp:TextBox>
但是当我运行这个网页时,它向我展示了这个错误:
CS0123: No overload for 'txtAgentName_TextChanged' matches delegate 'System.EventHandler'
我的代码背后有这个:
protected virtual void txtAgentName_TextChanged(object sender, EventArgs e)
{
}
在这里做了一个断点,当我点击Enter按钮时似乎正在触发。当用户在该文本框中输入第一个字符时,我想触发。
我在这里做错了什么?
答案 0 :(得分:2)
您的事件处理程序必须具有此签名
protected void txtAgentName_TextChanged(object sender, EventArgs e)
{
...
}
是吗?
答案 1 :(得分:1)
使用javascript的TextBox1.Attributes.Add("OnKeyPress", "GetKeyPress()")
,然后根据需要进行回发。
答案 2 :(得分:0)
<%@ Page Language="C#" %>
<script runat="server">
protected void txtSearch_TextChanged(object sender, EventArgs e)
{
lblSearchResults.Text = "Search for: " + txtSearch.Text;
}
</script>
<html>
<head>
<title>TextBox AutoPostBack</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label
id="lblSearch"
Text="Search:"
Runat="server" />
<asp:TextBox
id="txtSearch"
AutoPostBack="true"
OnTextChanged="txtSearch_TextChanged"
Runat="server" />
<hr />
<asp:Label
id="lblSearchResults"
Runat="server" />
</div>
</form>
</body>
</html>