After trying a few more things I have worked out what was happening. No problem with jqgrid or timers, just my understanding of how asp.net works. When the Imagebutton was clicked it performed the reload but also did a postback and because I am only registiering the start up script when it is not postback when the page reloaded the timer was not initiated and therefore the reload function was never called again. So I have changed the control from an imagebutton to just an image (which doesn't perform a postback when it is clicked) and it is working as I had planned now.