2016-11-18 78 views
0

on textbox OnTextChanged事件回发周期触发两次。用这两种方法来理解问题的断点。 这是我的代码示例文本框asp.net postback触发两次autopostback 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

避免使用自动回发,保持OnTextChanged事件陷阱 并添加一个按钮(隐藏或不)捉对文本框 返回PRESSION产生的回发。

下面是一个例子

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