You need that stack trace. It tells you which object reference was supposedly null.
The problem is that you're calling a method somewhere on something you expect isn't null, but it is.
but object is null, so somewhere, something isn't getting creating. Could be anywhere; thus, the stack trace.
rbl = DirectCast(e.Item.FindControl("rblist"), RadioButtonList)
You never check that it actually found that control. Then you use rbl as if it had.
If this post contains any code, I may or may not have tested it. It's probably just example code, so no getting knickers in a bunch over a typo, OK? If it doesn't have basic error checking in it, such as object detection or checking if objects are null before using them, put that in there. I'm giving examples, not typing up your whole app for you. You run code at your own risk.
Bored? Visit http://www.kaelisspace.com/