You wouldn't have to go as far a declaring it public, protected would give it enough permissions.
I would recommend djbaldwin behind code which would mean your html would look like:
<asp:datagrid id="dgAbstractList" runat="server" AutoGenerateColumns="False">
And since you have declared it "protected withevents" int your behind code, the event should fire.
hth