繁体   English   中英

TextChanged 事件未触发

[英]TextChanged event not firing

我在其中一个字段中有一个 GridView 和一个 TextBox:

<asp:GridView ID="NTSBulkEditGridView" runat="server" AutoGenerateColumns="false" AllowSorting="true" Height="500px"
        DataKeyNames="BookStem" OnRowDataBound="NTSBulkEditGridView_RowDataBound" DataSourceID="NTSSqlDataSource">
<Columns>  
    <asp:TemplateField HeaderText="Priority" SortExpression="Priority">  
        <ItemTemplate>  
            <asp:TextBox ID="txtPriority" runat="server" Text='<%# Eval("Priority") %>' BorderStyle="None" Width="80%" OnTextChanged="TextBox_Changed" AutoPostBack="true"></asp:TextBox>  
            <asp:CompareValidator ID="PriorityCompareValidator" runat="server" ControlToValidate="txtPriority" Display="Dynamic" ErrorMessage="Priority must be an integer!" Text="*" Operator="DataTypeCheck" Type="Integer" ValidationGroup="InsertUpdateNewTitlesStatusValidation" ></asp:CompareValidator>
        </ItemTemplate>
    </asp:TemplateField>  

...

你能告诉我为什么当我更改文本并按 Enter 时从未调用 TextBox_Changed() 吗? 我试图在 GridView 之外放置相同类型的文本框,并且它可以工作。 谢谢。

ASP.NET TextBox 的 TextChanged 转换为blur JavaScript 事件。 并且当输入元素的文本改变并且输入元素失去焦点时会发生blur 尝试更改文本,但不要按 Enter。 只需按TAB键 go 到下一个字段。 它会回火吗?

更新:

嗯,我看到了那个链接。 两件事情。 首先,如果您注意到,它可以追溯到 2005 年和 ASP.NET 2.0,我们都知道计算机世界的 6 年意味着 60 年。 所以那篇文章现在已经过时了。 其次,有时一种模式只存在于文章中,而您很少在实际生产系统中看到它。 您在 web 上看到了多少批量操作? 他们有什么类型? 以 Gmail 或 Yahoo 邮箱为例。 您可以一次性将 20 或 30 或 X 封电子邮件标记为已读。 但是,你能一次回复 20 封邮件吗? 不,只是因为它没有意义。 我从未见过 web 世界中的文本框上的批量操作。 我觉得你还是坚持用AJAX吧,性能更好,用户接受度更高。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM