我的一个字段中有一个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()?我试图将相同类型的TextBox放在GridView之外,并且它可以工作。 感谢。
答案 0 :(得分:1)
ASP.NET TextBox的TextChanged转换为blur
JavaScript事件。当输入元素的文本发生更改且输入元素失去焦点时,会发生blur
。尝试更改文本,但不要按回车键。只需点击TAB
键即可转到下一个字段。是否发回消息?
更新
好吧,我看到了这个链接。两件事情。首先,如果您注意到,它可以追溯到2005年和ASP.NET 2.0,我们都知道计算机世界中的6年意味着60年。所以这篇文章现在已经过时了。其次,有时一种模式只存在于文章中,而你很少在真正的生产系统中看到它。您在网上看到了多少批量操作?他们有什么类型的?例如,考虑使用Gmail或Yahoo邮件。您可以一次性将20或30或X个电子邮件标记为已读。但是,你能一步回复20封邮件吗?不,只是因为它没有意义。我从未在网络世界的文本框中看到批量操作。我认为你最好坚持使用AJAX,具有更好的性能和更多的用户接受度。 :)