Вы можете получить событие 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)
Надеюсь, это поможет!
У меня нет проблем с тем, чтобы событие загорелось (оно называется точно так, как вы описали). Моя проблема заключается в ссылке на строку, в которой находится текстовое поле 'sender'. – fearoffours