Code:
private property string _selectedKey
{
    get{return (string)ViewState["-selectedKey"];}
    set{ViewState["-selectedKey"] = value;}
}
I quit vb sorry. But it would Be ViewState("-selectedKey") = value and however you change types with vb. Then you know when your Grid fires the selected index changed event
Code:
			_selectedKey = dg_products.Items[dg_products.SelectedIndex].Cells[2].Text;
Thats what you would do now minus the getting the linkbutton. But if you add a button and set it Command to Select you can use the ItemCommand Event wich lets you have multi buttons that do multi things. You just do a Select Case/switch on e.CommandName and you have e.Item.Cells[x]