Вы можете запустить событие TextChanged, если выполните следующее:
<asp:DataGrid ID="DataGrid1" runat="server" AutoGenerateColumns="False"
onitemdatabound="DataGrid1_ItemDataBound">
<Columns>
<asp:TemplateColumn HeaderText="Test">
<ItemTemplate>
<asp:TextBox OnTextChanged="txtBox_TextChanged" ID="TextBox1" runat="server" AutoPostBack="True"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Name" HeaderText="Test 1"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
Вы заметите, что у меня установлены следующие свойства:
AutoPostBack = "True"
Я также вручную добавил OnTextChanged = "txtBox_TextChanged" в текстовое поле.
В моем коде есть:
protected void txtBox_TextChanged(object sender, EventArgs e)
{
TextBox txtBox = (TextBox)sender;
Label1.Text = txtBox.Text;
}
Событие будет вызываться только тогда, когда вы теряете фокус на текстовом поле после ввода.
Ключевые моменты для рассмотрения:
Это приведет к посту назад, поэтому Ajax может быть хорошим способом сделать пользовательский интерфейс приятным.
Вам нужно убедиться, что вы обернули свой DataBind () в if (! IsPostBack)
Надеюсь, это поможет!