我正在尝试在用户在文本框字段中输入完文本时运行一个函数。
但是当我尝试编译代码时,我得到了这个错误
错误:
Compiler Error Message: CS1061: 'ASP.account_default_testingpage_aspx'
does not contain a definition for 'GetAverageRent_TextChanged' and no
extension method 'GetAverageRent_TextChanged' accepting a first
argument of type 'ASP.account_default_testingpage_aspx' could be found
(are you missing a using directive or an assembly reference?)
任何想法如何解决这个问题?
我的标记是
<asp:TextBox ID="PostcodeTxb" runat="server" OnTextChanged="GetAverageRent_TextChanged" AutoPostBack="true">EnterPostcode</asp:TextBox>
我的c#是
private void GetAverageRent_TextChanged(object sender, EventArgs e)
{
TextBox PostcodeTxb = sender as TextBox;
if (PostcodeTxb != null)
{
string theText = PostcodeTxb.Text;
}
}
答案 0 :(得分:3)
问题是你的事件处理程序是private
。
如果您在加价中定义事件处理程序,则必须为protected
或public
。通常你会使用protected
。
更改...
private void GetAverageRent_TextChanged(object sender, EventArgs e)
要...
protected void GetAverageRent_TextChanged(object sender, EventArgs e)
答案 1 :(得分:0)
你的文本框ID和代码隐藏方法不匹配所以你的代码错了,它可能是这样的: -
我的标记是
<asp:TextBox ID="GetAverageRent" runat="server" OnTextChanged="GetAverageRent_TextChanged" AutoPostBack="true"></asp:TextBox>
C#代码是
private void GetAverageRent_TextChanged(object sender, EventArgs e)
{
TextBox PostcodeTxb = sender as TextBox;
if (PostcodeTxb != null)
{
string theText = PostcodeTxb.Text;
}
}
答案 2 :(得分:0)
可能是因为您在添加方法后已将文本框名称从GetAverageRent更改为PostcodeTxb。 转到youlaspfile.aspx.designer.cs,其中TextBox PostcodeTxb定义并添加GetAverageRent_TextChanged事件。建议对控件事件使用相同的controlname_eventname以避免混淆。例如,您的事件名称必须是PostcodeTxb_TextChanged而不是GetAverageRent_TextChanged。
PostcodeTxb.TextChanged +=new EventHandler(PostcodeTxb_TextChanged);
必须改为
PostcodeTxb.TextChanged +=new EventHandler(GetAverageRent_TextChanged);
如果你想保持当前的命名。