【问题标题】:TextChanged event not being triggered with UpdatePanelUpdatePanel 未触发 TextChanged 事件
【发布时间】:2014-08-15 16:41:43
【问题描述】:

我有 2 个文本框:txtSKU1 和 txtDescription1。我希望用户将文本放入 txtSKU1,然后点击选项卡并触发 txtSKU1_TextChanged 事件,这将自动填充 txtDescription1。我试图避免使用回发。据我了解,TextChanged 事件在失去焦点后触发,所以我假设我在下面使用的 UpdatePanel 会起作用,但在我触发回发之前什么都不会发生。有什么想法吗?

<td><asp:TextBox ID="txtSKU1" runat="server" width="100%" BorderColor="#dddddd" OnTextChanged="txtSKU1_TextChanged"></asp:TextBox></td>
    <td>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:TextBox ID="txtDescription1" runat="server" width="100%" BorderColor="#dddddd"></asp:TextBox>
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="txtSKU1" EventName="TextChanged" />
                </Triggers>
            </asp:UpdatePanel>
    </td>

【问题讨论】:

  • 您可以尝试使用 javascript 进行此操作
  • 我对此持开放态度,但我很好奇为什么上面的代码不起作用。我之前使用过 UpdatePanel,它是通过单击触发的,它可以工作,但我无法弄清楚为什么 TextChanged 不会触发。

标签: c# asp.net


【解决方案1】:

问题不在于 UpdatePanel,而只是 TextChanged 事件仅在由其他事物触发的回发期间触发。

要让TextChanged 触发回发,请设置其AutPostBack 属性:

OnTextChanged="txtSKU1_TextChanged" AutoPostBack="true"

【讨论】:

  • 没有回发就不能解雇TextChanged吗?我使用链接标签的单击事件来清除文本框的文本,使用 Update Panel 不会触发回发。我正在尝试像用户输入 SKU,点击标签,然后 TextChange 事件触发,没有回发
  • 不,不是。 (尝试一下,在一个简单的网络表单中。)但我并不是说您必须进行完整的回发。我指的是任何回发,包括在 partial page rendering UpdatePanel 期间发生的回发。
猜你喜欢
  • 1970-01-01
  • 2018-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-01
  • 2013-06-23
  • 1970-01-01
相关资源
最近更新 更多