我有一個GridView,並在其領域的一個文本框:TextChanged事件沒有觸發
<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>
...
你能告訴我,爲什麼TextBox_Changed()不會被調用,當我更改文本並按Enter鍵?我試圖在GridView外部放置同樣類型的TextBox,並且在那裏工作。 謝謝。
我不相信它是有效的ItemTemplate塊內。而且看起來你的ID會被重複和破壞。 – Joe
@Joe Tuskan不,不會重複。它會根據控制樹自動計算 – VMAtm
@Joe Tuskan ID不會影響gridviews的處理。真正的問題是他想要如何處理這些數據,因爲這可能會迫使他執行除TextChanged以外的其他操作。他無法用他目前的設計知道他正在編輯哪一行。正如@saeed所說, –