I have a repeater with a textbox inside , and I want to fire an event 
when I move from one textbox to another textbox , with the OnItemCommand of 
the repeater . 
<asp:Repeater ID="RptrPeople" runat="server" OnItemDataBound="RptrPeople_ItemDataBound" OnItemCommand="RptrPeople_ItemCommand">
         <ItemTemplate>
                <asp:HiddenField ID="hf" runat="server" Value="<%# Eval(this.ValuedPerson) %>" />
                <asp:TextBox ID="txtDescription" runat="server" IsRequired="false" Visible="true" AutoPostBack="true"  />
         </ItemTemplate>
</asp:Repeater> 
I tried to use the OnTextChanged of the Textbox , but I can't get the item that fired the event this way .
Can anyone please advise on a good way to get the item that fires the event , after I moved from one textbox , using the OnItemCommand  (for example , I entered 123 in Textbox #1 , and then moved to Textbox #2 ... then I want to fire the event that takes care of the Textbox that has the 123 value) ?
Thanks
I tried to use the OnTextChanged of the Textbox , but I can't get the item that fired the event this way .
The sender argument is always the control that triggered the event:
protected void txtDescription_TextChanged(Object sender, EventArgs e)
{
    TextBox txtDescription = (TextBox) sender;
}
So you should use this instead of OnItemCommand because there the sender is the repeater.
If you also need to get the reference of the HiddenField use following code:
protected void txtDescription_TextChanged(Object sender, EventArgs e)
{
    TextBox txtDescription = (TextBox) sender;
    var item = (RepeaterItem) txtDescription.NamingContainer;
    HiddenField hf = (HiddenField) item.FindControl("hf");
}
The NamingContainer of any control in a RepeaterItem is always the RepeaterItem. As an aside, that's working similar for other web-databound controls like GridView or DataList.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With