ASP.Net:文本框更改给出错误

时间:2014-04-25 10:32:02

标签: c# asp.net exception

我正在尝试在用户在文本框字段中输入完文本时运行一个函数。

但是当我尝试编译代码时,我得到了这个错误

错误:

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;
   }
}

3 个答案:

答案 0 :(得分:3)

问题是你的事件处理程序是private

如果您在加价中定义事件处理程序,则必须为protectedpublic。通常你会使用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); 如果你想保持当前的命名。