En primer lugar sencillamente no podemos ejecutar tu código y ver lo que hace o no hace sólo porque no has sido lo suficientemente inteligente como para explicar tu problema.
Leer código no sirve de nada, y como no podemos leer tu mente me limito a pedirte que amplíes la información, ya que de ninguna forma podemos adivinar lo que te ocurre.