You just said you took the damage. Did you mean "I waited until after Griselbrand has already dealt me damage", or did you just mean "I decided not to block Griselbrand"?
Because if you wait until Griselbrand has already dealt combat damage, it's way too late to cast Skullcrack
and expect to stop the lifegain--your opponent has already gained his 7 life, and locking the barn door after the horse is gone won't help you.
But what you could have done was cast Skullcrack
during the Declare Blockers step, after you decided not to block and before
Griselbrand dealt combat damage. If you did that, then your opponent wouldn't gain any life.
If your opponent is smart he's going to wait until after he's gained his 7 life to draw his cards, so you're going to have a hard time nailing him with that Skullcrack for much extra value.