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