текст изменён, событие не сработало - PullRequest
1 голос
/ 09 февраля 2010

Мне нужно добавить 1 событие для текстового поля на мою веб-страницу (созданную в ASP.NET с C #), и я был объявлен в функции Page_Load и в синтаксис asp:

 protected void Page_Load(object sender, EventArgs e)
    {
        textbox1.TextChanged += new EventHandler(textbox1_TextChanged);
    }

public void textbox1_TextChanged(object sender, EventArgs e)
{
    if (textbox1.Text == "ABCD")
    {
        Image1.Visible = true;
        textbox1.Enabled = false;
    }
}

и на странице asp я использовал это утверждение:

<asp:TextBox Width="200" ID="textbox1" runat="server"></asp:TextBox>

Я сделал отладку и обнаружил, что не выполняется textbox1_TextChanged функция

Почему?

Ответы [ 3 ]

9 голосов
/ 09 февраля 2010

вам нужно установить AutoPostBack на true.
см. msdn для этого:

Чтобы событие TextChanged вызвало немедленную публикацию, установитеСвойство AutoPostBack элемента управления TextBox имеет значение true.

0 голосов
/ 25 апреля 2015

Я думаю также стоит отметить, что событие TextChanged не срабатывает, если текстовое значение на самом деле не изменилось, т.е. вы устанавливаете текст но вы устанавливаете на то же значение, что и ранее.

0 голосов
/ 04 сентября 2014

Что ж, лучше поздно, чем никогда: вы, строго говоря, объявили метод обработчик для события. Но вы не связали событие с обработчиком, как это:

<asp:TextBox Width="200" ID="textbox1" OnTextChanged="textbox1_TextChanged" runat="server"></asp:TextBox>

Что вы пропустили: OnTextChanged="textbox1_TextChanged"

Другими словами, ваш метод никогда не будет вызван, потому что вы никогда не сообщали элементу управления, что метод является обработчиком события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...