2016-11-18 5 views
0

В текстовом поле OnTextChanged событие запускается после двух циклов обратной передачи. Точки прерывания для обоих методов для понимания проблемы. Вот мой пример кодаТекстовое сообщение asp.net postback trigger дважды на автозапуске true

<form id="form1" runat="server"> 
    <div> 
     <asp:TextBox runat="server" ID="TextBox1" OnTextChanged="TextBox1_TextChanged" AutoPostBack="true" /> 
    </div> 
    <asp:Label ID="Label1" runat="server"></asp:Label> 
</form> 

Его код позади.

 public static int cycle { get; set; } 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void TextBox1_TextChanged(object sender, EventArgs e) 
    { 
     cycle++; 
     Label1.Text = cycle.ToString(); 
    } 
+0

код вы предоставили не делает метод *** TextBox1_TextChanged *** вызывается дважды, так что проблема находится где-то в вашем коде. Что значит «точки останова в обоих методах»? Конечно же, загрузка страницы будет вызвана и при каждой обратной передаче, так как работает жизненный цикл страницы. – Esko

ответ

0

Избегайте использование AutoPostBack, держать OnTextChanged ловушки события и добавить кнопку (скрытую или нет), чтобы поймать обратное чатление на текстовом поле для получения обратной передачи.

Вот пример

 <asp:Panel runat="server" CssClass="col-md-2"> 
      <asp:Panel runat="server" CssClass="form-group input-group" DefaultButton="BTN_Cerca"> 
       <span class="input-group-btn"> 
        <asp:Button runat="server" ID="BTN_Cerca" Text="Codice" CssClass="btn btn-secondary" ToolTip="Cerca in magazzino"/> 
       </span> 
       <asp:TextBox runat="server" ID="TXT_Search" CssClass="form-control" placeholder="Numero Articolo" OnTextChanged="TXT_Search_TextChanged" /> 
      </asp:Panel> 
     </asp:Panel>