I have never done that, but could you just add an EventHandler for the Textbox?
<asp:TextBox runat="server" OnTextChanged="Text_OnTextChanged" ID="Text"></asp:TextBox>
In the CodeBehind you can just use the sender to get the Text:
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
TextBox text = sender as TextBox;
text.Text;
}
While this might look like actual Code, this is untested pseudocode for illustration only!
Added after your clarification:
Ok so you need this:
Sub GridView_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs){
Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim row As GridViewRow = GridView.Rows(index)
TextBox lName = row.FindControl("Lname") as TextBox;
TextBox fName = row.FindControl("FName") as TextBox;
Label empId = row.FindControl("EmpId") as Label;
}
Assuming all your Controls have the id set like this in the ASP Markup
id="Lname"
. This needs to be exactly like the Parameter of FindControl.
Hope this helps, and again no checked code, may contain typos.