【问题标题】:Textbox asp.net postback trigger twice on autopostback true文本框 asp.net 回发在 autopostback true 上触发两次
【发布时间】:2016-11-18 09:52:32
【问题描述】:

在文本框 OnTextChanged 事件中,回发周期触发两次。两种方法的断点来理解问题。 这是我的代码示例

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

【问题讨论】:

  • 您提供的代码不会使方法 TextBox1_TextChanged 调用两次,因此问题出在代码的其他地方。您是什么意思“两种方法中的断点”?页面加载当然也会在每次回发时被调用,这是页面生命周期的工作方式。

标签: asp.net autopostback


【解决方案1】:

避免使用 AUTOPOSTBACK,保留 OnTextChanged 事件陷阱 并添加一个按钮(隐藏或不隐藏)以捕捉文本框上的返回压力 生成 POSTBACK。

这是一个例子

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多