2016-11-18 6 views
0

텍스트 상자 OnTextChanged 이벤트에서 포스트 백주기가 두 번 트리거됩니다. 문제를 이해하기위한 두 가지 방법의 중단 점. 내 코드 샘플은 다음과 같습니다.텍스트 상자 asp.net 포스트 백 트리거가 autopostback true로 두 번 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> 

코드 숨김. AutoPostBack은을 사용하여

 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

입니다. 두 방법 모두에서 "중단 점"이란 무엇입니까? 페이지로드는 물론 모든 포스트 백에서 호출됩니다. 페이지 라이프 사이클이 작동하는 방식입니다. – Esko

답변

0

피은 OnTextChanged 이벤트 트랩 을 유지하고 포스트 백을 생산하기 위해 텍스트 상자 에 반환 Pression의 잡으려고 버튼 (숨김 여부)를 추가합니다.

여기에 문제가 코드에서 다른 곳, 그래서 당신이 제공하는 코드가 두 번 호출 방법 *** TextBox1_TextChanged ***을하지 않는 예를

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