Sie können das Textchanged-Ereignis erhalten zu feuern, wenn Sie Folgendes tun:
<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>
Sie werden feststellen, dass ich die folgenden Eigenschaften festgelegt: Autopostback = „True“ ich auch habe manuell die OnTextChanged hinzugefügt = "txtBox_TextChanged" in das Textfeld.
In meinem Code hinter ich habe:
protected void txtBox_TextChanged(object sender, EventArgs e)
{
TextBox txtBox = (TextBox)sender;
Label1.Text = txtBox.Text;
}
Der einzige Weg, feuert das Ereignis ist, wenn Sie den Fokus auf dem Textfeld nach der Eingabe verlieren.
Wichtige Punkte zu beachten: Dies wird eine Post zurück, so Ajax könnte ein guter Weg, um die Benutzerfreundlichkeit nett zu halten. Sie müssen sicherstellen, dass Sie Ihre DataBind() in einem if (! IsPostBack)
wickeln Sie Hope dies hilft!
Ich habe kein Problem, das Ereignis zu schießen, (es heißt genau so, wie Sie beschreiben). Mein Problem besteht darin, auf die Zeile zu verweisen, in der sich das Textfeld 'sender' befindet. – fearoffours