Asp.Net,UpdatePanel 中的文本框文本更改问题

Posted

技术标签:

【中文标题】Asp.Net,UpdatePanel 中的文本框文本更改问题【英文标题】:Asp.Net, textbox textchanged problem in UpdatePanel 【发布时间】:2021-12-26 15:08:23 【问题描述】:

我在触发文本框对象的 textchanged 事件时遇到问题。例如,当我想按 Tab 键时,它应该专注于下一个对象,但它没有。或者当我单击一个按钮时,我必须单击两次。我该如何解决这个问题?我添加了代码和我遇到的问题作为 gif。

default.aspx

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
        <ContentTemplate>
            <div class="form-group row">
                <label class="col-lg-2 col-form-label">İşlem Tutarı</label>
                <div class="col-lg-4">
                    <asp:TextBox ID="txtTutar" CssClass="form-control form-control-sm price" AutoPostBack="true" placeholder="0,00 ₺" runat="server" OnTextChanged="txtTutar_TextChanged"></asp:TextBox>
                </div>
            </div>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="txtTutar" EventName="TextChanged" />
        </Triggers>
    </asp:UpdatePanel>

default.asp.cs

txtTahsilEdilen.Text = txtTutar.Text;

【问题讨论】:

您可以转储触发器 - 它对您没有任何价值。您需要为该文本框设置 AutoPostBack="true" - 触发器不会帮助您。 【参考方案1】:

您可以转储触发器 - 它对您没有任何价值。您需要为该文本框设置 AutoPostBack="true" - 触发器不会帮助您。

那么到底触发了什么?

用于触发同一页面上的另一个单独的面板!!!

因此,您可以在面板中拥有一个按钮,甚至是一个文本框。他们仍然必须在此处回帖 - 您需要/必须将回帖添加到文本框中。

触发器有什么作用?好吧,假设你有一个第二个更新面板——里面有很多东西。好吧,你后面的代码可能会更新两个面板。

因此,您将向第二个面板添加一个触发器,该触发器指向您的文本框(或第一个面板中的按钮)。现在,当第一个面板更新面板更新时(由于回发),带有触发器标签和设置的第二个面板也将刷新。

但是,该功能不会自动为您回传。因此,在 SAME 更新面板中指定触发器不是必需的,没有意义,并且不会为您做任何事情。

除非触发了回发,否则触发器设置根本不执行任何操作,它们不会导致回发,并且不会触发按钮代码,或者在这种情况下不会运行文本框事件代码。

因此,理论上,触发器设置将放置在第二个不同的更新面板中,当一个按钮(或文本框)在另一个更新面板中回发时,您还希望重新刷新该面板。但是,要使其正常工作,您仍然必须导致并进行回发。

所以这里的目的不是让更新面板回发,而只是检测另一个不同的面板真的只是做了回发。

无论我们以何种方式记录和解释上述内容?

触发设置不会触发按钮或文本框回发 - 这是您的工作来实现。因此,更新面板中的触发器设置可以设置为发生给定按钮的某些回发,然后确保具有触发器的面板也将更新。但是对于同一个面板 - 没有实际意义或理由这样做,因为触发标签仅在您导致回发时才起作用。并且触发设置仅指向不同更新面板中的按钮或控件。

底线: 移除触发标签 - 不需要它。

将文本框设置为自动回发 = true

【讨论】:

我已经在文本框中设置了 autopostback=true。我删除了触发器。它仍然无法正常工作。老实说,你写的东西我没太看懂。我的英文不是很好。能举个例子吗? 真的很简单——如果你为那个文本框设置了 autopost-back = true ,那么如果你编辑和制表符,那么它会触发改变的文本——这就是你需要知道的一切。如前所述,您可以删除您拥有的触发器标记 - 这不是必需的。所以真的,这就是你需要知道的全部内容。

以上是关于Asp.Net,UpdatePanel 中的文本框文本更改问题的主要内容,如果未能解决你的问题,请参考以下文章

UpdatePanel OnTextChanged 中的 ASP.NET TextBox 不会触发

如何将asp.net文本框滚动到底部

更新面板textchanged问题asp.net c#

Gridview Jquery DatePicker中的Asp.Net UpdatePanel

防止 ASP.net __doPostback() 来自 UpdatePanel 中的 jQuery submit()

带有 ASP.NET 复选框触发器的 asp:UpdatePanel